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

MongoDB count-Befehl

In MongoDB der count Der Aggregationsbefehl zählt die Anzahl der Dokumente in einer Sammlung oder Ansicht.

Es gibt ein Dokument zurück, das sowohl die Anzahl als auch den Befehlsstatus enthält.

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.runCommand( { count: "pets" } )

Ergebnis:

{ "n" : 7, "ok" : 1 }

Die MongoDB-Dokumentation rät sogar davon ab, den count zu verwenden Befehl und seine Wrapper-Methoden ohne Abfrageprädikat. Dies liegt daran, dass bei Ausführung ohne Abfrageprädikat Ergebnisse basierend auf den Metadaten der Sammlung zurückgegeben werden, was zu einer ungefähren Anzahl führen kann.

Das Ergebnis einer Abfrage zählen

Sie können das Ergebnis einer Abfrage zählen, indem Sie das folgende Formular verwenden.

Beispiel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" } 
} )

Ergebnis:

{ "n" : 4, "ok" : 1 }

In diesem Beispiel sehen wir, 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.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Ergebnis:

{ "n" : 3, "ok" : 1 }

Beschränken Sie die Anzahl

Sie können das limit verwenden Parameter, um eine maximale Anzahl von zu zählenden Dokumenten anzugeben.

Beispiel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Ergebnis:

{ "n" : 3, "ok" : 1 }

Wir haben vorher gesehen, dass es tatsächlich 4 Hunde gibt, aber in diesem Beispiel haben wir es auf maximal 3 beschränkt.

Wenn das Limit höher ist als die tatsächliche Anzahl, wird das Ergebnis nicht durch das limit beeinflusst Argument.

Beispiel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Ergebnis:

{ "n" : 4, "ok" : 1 }

Dokumente überspringen

Sie können den skip verwenden Parameter, um eine Reihe von Dokumenten vor dem Zählen zu überspringen.

Beispiel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Ergebnis:

{ "n" : 2, "ok" : 1 }

Einstellung

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 (die den count ausführen Befehl) zugunsten neuer APIs, die countDocuments() entsprechen und estimatedDocumentCount() . Die spezifischen API-Namen für einen bestimmten Treiber finden Sie in der Treiber-API-Dokumentation.

Weitere Informationen

Die count Der Befehl enthält andere Felder, wie z. B. hint , comment , readConcern und collation .

Weitere Informationen finden Sie in der MongoDB-Dokumentation.