leiten Sie Paging in MongoDB vor: Eine Alternative zur Paginierung mit Skip und Limit
Pagination ist eine gemeinsame Technik, mit der Daten in verwaltbaren Chunks abgerufen werden. Während die Implementierung der Pagination mit den Modifikatoren von mongoDB () und .Limit () ein gemeinsamer Ansatz ist, kann es bei der Behandlung großer Datensätze aufgrund des Speicherkonsums ineffizient werden. Das Erhalten der _ID des letzten Dokuments für nachfolgende Abfragen kann jedoch eine Herausforderung sein.
Paging mit natürlicher Reihenfolge durch _id
leiten Sie das Paging im Wesentlichen zu, sich durch die Ergebnisse voranzutreiben, und entgegengesetzt, um auf bestimmte Seiten zu springen, auf bestimmte Seiten oder zurückzukehren. Das grundlegende Konzept beinhaltet das Finden der _id des letzten Dokuments in einer Seite und die Verwendung als Untergrenze für die nächste Seite.
Hier ist ein Beispiel:
// Seite 1 var cursor = db.users.find (). limit (pageSize); var doc = cursor.next (); var last_id = doc._id; // Seite 2 var cursor = db.users.find ({'_ id'> last_id}). limit (10);
// Page 1 var cursor = db.users.find().limit(pageSize); var doc = cursor.next(); var last_id = doc._id; // Page 2 var cursor = db.users.find({'_id'> last_id}). limit(10);
Hier ist ein Beispiel:
// Seite 1 var seseds = []; var lastseenrank = null; var cursor = db.junk.find (). sort ({"rank": -1}). limit (2); // ... // Seite 2 var cursor = db.junk.find ( {"_id": {"$ nin": seseds}, "Rang": "$ lte": lastSeenrank} . Sie können bestimmte Datenbereiche abrufen, ohne die Leistung zu beeinträchtigen, aber es verfügt über einige Einschränkungen, z. B. die Unfähigkeit, leicht zurückzukehren oder auf bestimmte Seiten zu springen. Durch das Verständnis dieser Konzepte können Sie diesen Ansatz effektiv in Ihren MongoDB -Anwendungen nutzen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3