Диапазон в команде поиска MongoDB для разбивки на страницы - PullRequest
0 голосов
/ 26 мая 2020

Могу ли я реализовать любую команду MongoDb для поиска данных указанного диапазона c.

Например, у меня в базе данных 100 элементов, я хочу сначала получить 10 лучших элементов в диапазоне 1-10, затем я хочу получить следующие 10 элементов диапазона 11-20 и т. д.

1 Ответ

0 голосов
/ 27 мая 2020

Мы можем сделать это с помощью skip () и limit ().

MongoDB изначально поддерживает операцию разбиения по страницам с помощью команд skip () и limit (). Директива skip (n) сообщает MongoDB, что она должна пропускать n результатов, а директива limit (n) указывает MongoDB ограничивать длину результата n результатами. Обычно вы будете использовать с курсором директивы skip () и limit (), но для иллюстрации сценария мы предоставляем консольные команды, которые позволят достичь тех же результатов. Кроме того, для краткости кода исключен также код проверки лимитов:

//Page 1
db.users.find().limit (10)
//Page 2
db.users.find().skip(10).limit(10)
//Page 3
db.users.find().skip(20).limit(10)

Понятно. В общем, чтобы получить страницу n, код выглядит следующим образом:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)

https://scalegrid.io/blog/fast-paging-with-mongodb/

...