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

MongoDB-Cursor.count()

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