In MongoDB der db.collection.estimatedDocumentCount()
-Methode gibt die Anzahl aller Dokumente in einer Sammlung oder Ansicht zurück.
Die collection
part ist der Name der Sammlung oder Ansicht, für die der Zählvorgang ausgeführt werden soll.
Der db.collection.estimatedDocumentCount()
-Methode umschließt den count
Befehl.
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.estimatedDocumentCount()
Ergebnis:
7
Der db.collection.estimatedDocumentCount()
-Methode verwendet keinen Abfragefilter. Stattdessen werden Metadaten verwendet, um die Anzahl der Dokumente für die gesamte Sammlung zurückzugeben.
Es funktioniert jedoch immer noch, wenn es mit einem leeren Dokument bereitgestellt wird.
db.pets.estimatedDocumentCount({})
Ergebnis:
7
Die maxTimeMS
Parameter
Der db.collection.estimatedDocumentCount()
-Methode akzeptiert nur einen (optionalen) Parameter:den maxTimeMS
Parameter. Auf diese Weise können Sie die maximale Zeit festlegen, die der Zählvorgang ausgeführt werden kann.
Beispiel:
db.pets.estimatedDocumentCount({}, { maxTimeMS: 5000 })
Ergebnis:
7
Ablehnung von count()
zugunsten von estimatedDocumentCount()
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
Auf einem Sharding-Cluster filtert die resultierende Zählung verwaiste Dokumente nicht korrekt heraus.
Auch nach einem unsauberen Herunterfahren kann die Zählung falsch sein.
Weitere Informationen finden Sie in der MongoDB-Dokumentation.