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

MongoDB countDocuments()

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