Jedno podejście do tego problemu, jeśli masz duże ilości dokumentów i wyświetlasz je posortowane zamówienie (nie jestem pewien, jak przydatne skip
jest, jeśli nie) byłoby użycie klawisza, według którego sortujesz, aby wybrać następną stronę wyników.
Więc jeśli zaczniesz od
db.myCollection.find().limit(100).sort({created_date:true});
a następnie wyodrębnij datę utworzenia ostatniego dokument zwrócony przez kursor do zmiennej max_created_date_from_last_result
, możesz uzyskać następną stronę z dużo bardziej wydajnym (zakładając, że masz indeks w dniu created_date
) zapytanie
db.myCollection.find({created_date : { $gt : max_created_date_from_last_result } }).limit(100).sort({created_date:true});