OK, сначала сначала. Вы структурировали свои данные, как если бы это была РСУБД. Вы даже убежали и создали «таблицу соединений», как если бы такая вещь была полезной в Монго.
Короткий ответ на ваш вопрос состоит в том, что вы, вероятно, собираетесь переопределить «первый» для загрузки данных «Закладок». Либо «серверная сторона» с предложением $ in, либо «клиентская сторона» с большим циклом for.
Так два больших вопроса о данных:
- Если закладки полностью принадлежат риэлтеров, почему они в своей собственной коллекции?
- Если риэлторы могут заложить дома и Недвижимость, то почему они находятся в разных коллекциях? Разве это ненужное осложнение? Если вы хотите что-то вроде Realtor.first на закладках, зачем их ставить в разные коллекции?
Коллекция Риэлторы должны, вероятно, будет состоять из элементов, которые выглядят следующим образом:
{"name":"John", "bookmarks": [
{"h":"House1","notes":[{"Nice location","High Ask"}] },
{"p":"PropertyABC","notes":[{"Haunted"}] }
] }
Обратите внимание, как я дифференцированный «ч» и «р» для ID дома и ID недвижимости ? Если вы примете мое следующее предложение, вам это не понадобится.
Принимая этот шаг дальше, вы, вероятно, хотите, чтобы дома и объекты в той же коллекции, скажем, «Местоположения». В коллекции «Locations» вы просто собираете все Дома и свойства и отмечаете их «type»: «house» или «type»: «property». Затем вы индексируете поле «тип».
Почему?Потому что теперь, когда вы пишете «первый» метод, ваш запрос довольно прост. Все, что вы делаете, - это цикл через «закладки» и захватить соответствующий ключ («House1», «PropertyABC») из коллекции «Locations». Пейджинг прямолинейный, вы запрашиваете 10 предметов, а затем возвращаетесь.
Я знаю, что на каком-то уровне это похоже на хромой. »Почему я пишу цикл for для захвата данных? Я пытался прекратить это делать 15 лет назад!« Но Mongo - это «ориентированный на документ», магазина, поэтому он оптимизирован для загрузки отдельных документов. Вы пытаетесь загрузить кучу документов, поэтому вам придется перепрыгнуть через этот маленький обруч.
К счастью, это не так уж плохо. Mongo действительно быстро при загрузке отдельных документов. Выполнение запроса для извлечения 10 элементов одновременно будет очень быстрым.
Спасибо за подсказку. Я переосмыслил свой процесс проектирования и еще немного поехал. Я склоняюсь к чему-то вроде хранения массива House_Ids (поскольку они статичны и мало меняются) и вставляют все остальное. Это дает некоторые «реляционные» качества, которые я чувствую, не победив цель MongoDB. – cbmeeks
Если вы сделаете что-то подобное, вы, вероятно, получите то, что хотите. Я бы не вставлял «дом» или «свойство», но если вы храните их в одной коллекции, это упростит «поиск по закладкам». Риэлторы: {"name": "John", "bookmarks": [ {"h": ref, "notes": [{"Nice location", "High Ask"}]}, {"h ": ref," notes ": [{" Haunted "}]} ]} –