Один из подходов к этой проблеме, если у вас есть большое количество документов, и вы отображаете их в отсортированном порядке (я не уверен, насколько полезным будет skip
, если вы не)использовать ключ, по которому вы сортируете, чтобы выбрать следующую страницу результатов.
Так что, если вы начнете с
db.myCollection.find().limit(100).sort({created_date:true});
, а затем извлечете дату создания last документ возвращается курсором в переменную max_created_date_from_last_result
, вы можете получить следующую страницу с гораздо более эффективным (при условии, что у вас есть индекс по created_date
) запросом
db.myCollection.find({created_date : { $gt : max_created_date_from_last_result } }).limit(100).sort({created_date:true});