Frage

Ich habe zum Speichern von Protokolldaten MongoDB und RoR im Einsatz. Ich bin die Daten herausziehen und die Ergebnisse zu Seite suchen. Hat jemand getan Paging mit MongoDB oder wissen, dass Online-Ressourcen, die helfen könnten Sie mich angefangen?

Prost

Eef

War es hilfreich?

Lösung

Paginierung in MongoDB kann durch die Verwendung einer Kombination von limit() und skip() erreicht werden.

Zum Beispiel gehen wir von einer Sammlung namens Benutzer in unserer aktiven Datenbank haben.

>> db.users.find().limit(3)

Dies ruft eine Liste der ersten drei Benutzerdokumente für uns. Beachten Sie, dies ist im Wesentlichen das gleiche wie das Schreiben:

>> db.users.find().skip(0).limit(3)

Für die nächsten drei, wir können dies tun:

>> db.users.find().skip(3).limit(3)

Dieses überspringt den ersten drei Benutzerdatensätzen, und gibt uns die nächsten drei. Wenn es nur ein mehr Benutzer in der Datenbank ist, keine Sorge; MongoDB ist intelligent genug, um nur Rückgabedaten, die vorhanden ist, und wird nicht abstürzen.

Dies kann wie so verallgemeinert werden, und wäre entspricht in etwa dem, was Sie in einer Web-Anwendung tun würde. Unter der Annahme haben wir Variablen genannt PAGE_SIZE, die bis 3, und eine beliebige PAGE_NUMBER eingestellt ist:

>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

Ich kann nicht sprechen direkt, wie diese Methode in Ruby on Rails zu verwenden, aber ich vermute, dass die Ruby-MongoDB Bibliothek diese Methoden verfügbar macht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top