En metod för detta problem, om du har stora mängder dokument och du visar dem sorterade beställning (jag är inte säker på hur användbart skip
är om du inte är det) skulle vara att använda nyckeln du sorterar efter för att välja nästa sida med resultat.
Så om du börjar med
db.myCollection.find().limit(100).sort({created_date:true});
och extrahera sedan det skapade datumet för den senaste dokument som returneras av markören till en variabel max_created_date_from_last_result
, kan du få nästa sida med den mycket effektivare (förutsatt att du har ett index på created_date
) fråga
db.myCollection.find({created_date : { $gt : max_created_date_from_last_result } }).limit(100).sort({created_date:true});