Een benadering van dit probleem, als u grote hoeveelheden documenten heeft en deze in gesorteerd weergeeft bestelling (ik weet niet zeker hoe nuttig skip
is als u dat niet bent) zou zijn om de sleutel waarop u sorteert te gebruiken om de volgende pagina met resultaten te selecteren.
Dus als je begint met
db.myCollection.find().limit(100).sort({created_date:true});
en extraheer vervolgens de aanmaakdatum van de laatste document geretourneerd door de cursor in een variabele max_created_date_from_last_result
, kunt u de volgende pagina krijgen met de veel efficiëntere (ervan uitgaande dat u een index heeft op created_date
) vraag
db.myCollection.find({created_date : { $gt : max_created_date_from_last_result } }).limit(100).sort({created_date:true});