Was ist die effizienteste Möglichkeit, Mongo-Sammlungen in Batches abzufragen? Zum Beispiel in SQL würde ich so etwas wie:Equivalent Mongodb Idiom für Batch-Abfragen
SELECT * FROM Foo WHERE id > {{floor}} limit 1000;
ich gefunden habe, dass ich etwas tun kann, als here skizzierte
aber die große Warnung über skip macht mich denken, ich sollte das nicht verwenden. (Angenommen, die Sammlung ist groß genug, damit sie wichtig ist).
Meine Sammlung enthält keine Indizes neben dem automatisch generierten _id-Feld. Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, das zu benutzen und $ gt $ lt.
Wenn es darauf ankommt, werde ich den Casbah Treiber verwenden, falls es geheime Sauce ist eingebaut.
richtig, ich habe nur die _id default index, und so kenne ich nicht die min-id um zu starten. Obwohl, ich nehme an, wenn ich bei 0 anfange und 1000 begrenze, und dann die letzte _id nehme und es inkrementiere, könnte es funktionieren ... richtig? –
Tatsächlich scheint ich etwas wie db.foo.find ({_id: {$ gt: new ObjectId ("00000000000000000000000000")}}) .limit (1000) zu tun, um mich zu starten. Nett. –
Für die Paginierung wird diese Methode (Erinnerung an die letzte, dann unmittelbar danach) empfohlen. Sie können 'db.foo.find ({_ id: {$ gt: {last_object_id}}). Sort ({_ id: 1}) .limit (num_per_page)'. Rembmer, um die 'sort()' zu verwenden, sonst können Sie schrullige Ergebnisse erhalten. – dcrosta