2016-05-18 3 views
0

Это то, что я хочу добиться:MongoDB: Как получить большое количество документов, в последующих запросах

У меня есть коллекция с большим количеством документов. Пользователь запросит определенное поле, и оно вернет большое количество документов. Но по причинам пропускной способности/обработки я не хочу получать все документы и отправлять их пользователю (браузеру) сразу.

Допустим, пользователь делает запрос GET с полем поиска. Это даст 1000 результатов. Но я хочу только отправить первые 10 пользователю. И тогда пользователь будет запрашивать следующие 10 и так далее.

Есть ли способ достичь этого в Монгобе? Можно ли запросить с помощью определенного счетчика и увеличить его в последующих запросах?

Что такое хороший способ достижения этого механизма?

спасибо.

ответ

1

MongoDB изначально поддерживает операцию подкачки с помощью скипового() и предел().

//first 10 results -> page 1 
collection.find().limit (10) 

//next 10 results -> page 2 
collection.find().skip(10).limit(10) 

//next 10 results -> page 3 
collection.find().skip(20).limit(10) 
1

Здесь число представляет собой 1,2,3, ..... означает первые 10 записей, если вы даете номер = 1.

db.students.find().skip(number > 0 ? ((number-1)*10) : 0).limit(10); 
//first 10 records ,number = 1 
db.students.find().skip(1 > 0 ? ((1-1)*10) : 0).limit(10); 

//next 10 records ,number = 2 
db.students.find().skip(2 > 0 ? ((2-1)*10) : 0).limit(10); 
Смежные вопросы