MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Langsame Paginierung über Tonnen von Datensätzen in Mongodb

Ein Ansatz für dieses Problem, wenn Sie große Mengen an Dokumenten haben und diese sortiert anzeigen bestellen (Ich bin mir nicht sicher, wie nützlich skip ist ist, wenn Sie es nicht sind) wäre, die Taste zu verwenden, nach der Sie sortieren, um die nächste Ergebnisseite auszuwählen.

Wenn Sie also mit

beginnen
db.myCollection.find().limit(100).sort({created_date:true});

und extrahieren Sie dann das Erstellungsdatum des letzten Dokument, das vom Cursor zurückgegeben wird, in eine Variable max_created_date_from_last_result , können Sie die nächste Seite mit dem wesentlich effizienteren abrufen (vorausgesetzt, Sie haben einen Index für created_date ) Abfrage

db.myCollection.find({created_date : { $gt : max_created_date_from_last_result } }).limit(100).sort({created_date:true});