In MongoDB die cursor.count()
Methode zählt die Anzahl der Dokumente, auf die ein Cursor verweist..
Beachten Sie, dass die Abfrage nicht wirklich ausgeführt wird. Es zählt einfach die Anzahl der Ergebnisse, die von der Abfrage zurückgegeben würden, und gibt sie zurück.
Der cursor.count()
Methode ist ein Wrapper für 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.find().count()
Ergebnis:
7
Dies entspricht dem folgenden Vorgehen:
db.pets.count()
Ergebnis:
7
Die MongoDB-Dokumentation rät tatsächlich davon ab, cursor.count()
zu verwenden wenn find()
-Methode wird ohne Abfrageprädikat aufgerufen. Dies liegt daran, dass die Ergebnisse in solchen Fällen auf den Metadaten der Sammlung basieren, was zu einer ungefähren Zählung führen kann.
Das Ergebnis einer Abfrage zählen
Sie können das Ergebnis einer Abfrage zählen, indem Sie die Abfragekriterien an find()
übergeben Methode.
Beispiel:
db.pets.find({"type": "Dog"}).count()
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.find({"weight": { $gt: 10 }}).count()
Ergebnis:
3
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 zugunsten neuer APIs fürcountDocuments()
undestimatedDocumentCount()
. Die spezifischen API-Namen für einen bestimmten Treiber finden Sie in der Treiberdokumentation.
Das applySkipLimit
Parameter
Der cursor.count()
-Methode akzeptiert einen optionalen Parameter:das applySkipLimit
Parameter.
Dieser Parameter gibt an, ob die Auswirkungen von cursor.skip()
berücksichtigt werden sollen und cursor.limit()
Methoden in der Zählung.
Standardmäßig werden alle Auswirkungen dieser beiden Methoden ignoriert. Verwenden Sie zum Einschließen der Effekte appySkipLimit: true
.
Weitere Informationen
Weitere Informationen finden Sie in der MongoDB-Dokumentation.