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