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 dencount
ausführen Befehl) zugunsten neuer APIs, diecountDocuments()
entsprechen undestimatedDocumentCount()
. 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.