wie nennen count-Methode nach finden mit mongodb-java-Treiber
Ich bin mit MongoDB 3.0. angenommen, es ist ein Satz von Dokumenten, die mit Namen photos
, seine Struktur ist
{"_id" : 1, photographer: "jack"}
mit database.getCollection("photos")
, Mongodb zurück MongoCollection
Objekt, auf dem ich die Methode count()
um die Anzahl der Dokumente zurückgegeben.
Jedoch, wenn ich Abfragen mit spezifischen Bedingungen. Zum Beispiel die Suche nach Dokumenten mit id kleiner als 100 :
photosCollections.find(Document.parse("{_id : {$lt : 100}}"))
Oben find
Methode wird immer wieder ein cursor, die nicht bieten eine count()
Funktion. Also, wie kann ich wissen, wie viele Dokumente zurückgegeben ? Ich weiß, auf der Kommandozeile kann ich mit
db.photos.find({_id : {$lt : 100}}).count()
Natürlich, ich kann gehen, durch den iterator, und die Anzahl der Dokumente selbst. Allerdings finde ich es wirklich ungeschickt. Ich Frage mich, hat MongoDB-java-Treiber bietet diese Funktionalität, um die Anzahl der Dokumente zurückgegeben, die von der find()
Methode ? Wenn nicht, was ist der Grund hinter der Entscheidung ?
InformationsquelleAutor Ensom Hodder | 2015-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie sagte, die MongoCollection hat die
count()
Methode zurückgeben, die Anzahl der Dokumente in der Sammlung, aber es hat auch einecount(Bson filter)
zurückgeben, die Anzahl der Dokumente in der Sammlung nach den gegebenen Möglichkeiten.So können Sie einfach verwenden:
oder vielleicht klarer:
ref: http://api.mongodb.com/java/3.3/com/mongodb/client/MongoCollection.html#count-org.bson.conversions.Bson-
InformationsquelleAutor Enrichman
Ich hatte ein ähnliches problem. Ich bin mit MongoCollection statt DBCollection, wie es ist, was es ist verwendet in MongoDG 3.2-Handbuch. MongoCollection hat nicht die count () - Methode, so denke ich, die einzige option ist die Verwendung der iterator zu zählen.
In meinem Fall brauchte ich nur wissen, ob jedes Dokument zurückgegeben worden ist, ich bin mit diesem:
InformationsquelleAutor Ana María Martínez Gómez
in(A) (A collection type) - Methode iteriert über alle Dokumente und fügt zu den jeweils angegebenen Ziel. Dann können wir die Anzahl der zurückgegebenen Dokumente.
InformationsquelleAutor Sandeep sandy
In MongoDB 3.4 kann man nur den Iterator der FindIterable, um die Anzahl der zurückgegebenen Dokumente durch einen filter. z.B.
`
InformationsquelleAutor NOTiFY
Den API-docs deutlich, dass DBCursor-Objekt bietet eine count-Methode:
href="http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/" >mongodb.github.io/mongo-java-Treiber/3.0/Treiber/getting-started/... Hinweis: der 3.0 in der URL. Getestet, funktioniert.
Querybuilder nicht vorhanden
InformationsquelleAutor Markus W Mahlberg