Есть ли в MongoDB опция эквивалентного .startAfter fireStore? - PullRequest
0 голосов
/ 06 января 2020

По умолчанию я могу использовать значение _id в find () и sort () для пропуска документов. Но я сортирую, используя другое поле. И, следовательно, документы будут случайным образом отсортированы по значению _id.

Я ищу что-то эквивалентное этому

db.collection("cities")
                .orderBy("population")
                .startAfter(lastVisible)
                .limit(25);

Не удалось найти эквивалентную опцию в документации mongodb. Пожалуйста, помогите с этим запросом. Заранее спасибо.

1 Ответ

2 голосов
/ 07 января 2020

Аналогичный запрос в MongoDB:

db.collection('cities')
  .find({population: {$gt: lastVisible}})
  .sort({population: 1})
  .limit(25)

Конечно, фактический запрос будет зависеть от других вещей, но в целом он будет выглядеть так. Создайте индекс на population, чтобы убедиться, что запрос не будет сканированием коллекции.

См. $ gt и Создание индексов для поддержки ваших запросов

Примечание 1 : Если вы новичок в MongoDB, ознакомьтесь с бесплатными курсами в Университет MongoDB , чтобы узнать больше о MongoDB.

Примечание 2 : Не используйте пропуск + предел для подкачки . Это известный анти-паттерн. См. MongoDB - пейджинг и Пейджинг с шаблоном Bucket для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...