MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-SchätzungDocumentCount()

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ür countDocuments() und estimatedDocumentCount() . 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.