Един подход към този проблем, ако имате големи количества документи и ги показвате в сортирани поръчка (не съм сигурен колко полезен skip
е, ако не сте) би било да използвате ключа, по който сортирате, за да изберете следващата страница с резултати.
Така че, ако започнете с
db.myCollection.find().limit(100).sort({created_date:true});
и след това извлечете датата на създаване на последния документ, върнат от курсора в променлива 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});