Не имея доступа к логике объединения, вам в основном нужно выполнить два запроса:
- Загрузить пользователя и получить список его альбомов.
- Запросить фотографии с идентификатором альбома в списке альбомов пользователя..
Это общий шаблон в MongoDB, когда у вас есть отношение многие ко многим.Если на сервере нет JOIN, вам нужно написать собственное объединение на клиенте.
Метод, который я могу выяснить, - это использовать вложенный цикл for, чтобы получить все фотографии и поместить их всписок и отсортировать его, используя номер идентификатора (который подразумевает порядок времени)
С имеющейся структурой это в основном все, что вы можете сделать.Также обратите внимание, что MongoDB ObjectId
не монотонно увеличивается.Если вы собираетесь сортировать по идентификатору, это должен быть ваш собственный идентификатор.
Также обратите внимание, что вы можете создать индекс для photos
в поле album_ids
, чтобы сделать запрос быстрым.Однако, если вы планируете использовать .sort()
и заставить сервер сортировать для вас, это поле должно быть частью того же индекса, иначе это приведет к ошибке.