In MongoDB die db.collection.countDocuments()
-Methode gibt die Anzahl der Dokumente zurück, die der Abfrage für eine Sammlung oder Ansicht entsprechen.
Die collection
part ist der Name der Sammlung oder Ansicht, für die der Zählvorgang ausgeführt werden soll.
Beispiel
Angenommen, wir haben eine Sammlung namens pets
mit folgenden Dokumenten:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Wir können die folgende Abfrage verwenden, um die Anzahl der Dokumente in der Sammlung zurückzugeben:
db.pets.countDocuments({})
Ergebnis:
7
Das Ergebnis einer Abfrage zählen
Sie können das Ergebnis einer Abfrage zählen, indem Sie die Abfragekriterien übergeben.
Beispiel:
db.pets.countDocuments({
"type": "Dog"
})
Ergebnis:
4
In diesem Beispiel haben wir herausgefunden, dass die Sammlung vier Hunde enthält.
Lassen Sie uns die Anzahl einer anderen Abfrage überprüfen. Dieses Mal werden wir herausfinden, wie viele Haustiere ein bestimmtes Gewicht überschreiten.
db.pets.countDocuments({
"weight": { $gt: 10 }
})
Ergebnis:
3
Beschränken Sie die Anzahl
Sie verwenden das limit
Parameter, um eine maximale Anzahl von zu zählenden Dokumenten anzugeben.
Beispiel:
db.pets.countDocuments( {}, { limit: 5 } )
Ergebnis:
5
Wir haben zuvor gesehen, dass diese Sammlung tatsächlich 7 Dokumente enthält, aber in diesem Beispiel haben wir sie auf maximal 5 beschränkt.
Wenn das Limit höher ist als die tatsächliche Anzahl, wird das Ergebnis nicht durch das limit
beeinflusst Argument.
Beispiel:
db.pets.countDocuments( {}, { limit: 10 } )
Ergebnis:
7
Dokumente überspringen
Sie können mit skip
zählen Parameter, um eine Reihe von Dokumenten vor dem Zählen zu überspringen.
Beispiel:
db.pets.countDocuments( {}, { skip: 5 } )
Ergebnis:
2
Ablehnung von count()
zugunsten von countDocuments()
Beachten Sie, dass in der MongoDB-Dokumentation Folgendes angegeben ist:
MongoDB-Treiber, die mit den 4.0-Funktionen kompatibel sind, verwerfen ihren jeweiligen Cursor und ihre Sammlung
count()
APIs zugunsten neuer APIs fürcountDocuments()
undestimatedDocumentCount()
. Die spezifischen API-Namen für einen bestimmten Treiber finden Sie in der Treiberdokumentation.
Weitere Informationen
Die countDocuments()
-Methode ist nicht auf Metadaten angewiesen, um die Anzahl wie count()
zurückzugeben Methode tut. Stattdessen führt es eine Aggregation der Dokumente durch, was zu einer genauen Zählung führt (was für count()
nicht immer gesagt werden kann Methode).
Gemäß der MongoDB-Dokumentation countDocuments()
auch nach einem unsauberen Herunterfahren oder bei Vorhandensein verwaister Dokumente in einem Sharding-Cluster korrekt ist.
Die db.collection.count()
-Methode akzeptiert auch einen hint
-Parameter und ein maxTimeMS
Parameter.
Weitere Informationen finden Sie in der MongoDB-Dokumentation.