sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB cursor.count()

I MongoDB er cursor.count() metode tæller antallet af dokumenter, der refereres til af en markør..

Bemærk, at den faktisk ikke udfører forespørgslen. Den tæller simpelthen og returnerer antallet af resultater, der ville blive returneret af forespørgslen.

cursor.count() metoden er en indpakning for count kommando.

Eksempel

Antag, at vi har en samling kaldet pets med følgende dokumenter:

{ "_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 }

Vi kan bruge følgende forespørgsel til at returnere antallet af dokumenter i samlingen:

db.pets.find().count()

Resultat:

7

Dette svarer til at gøre følgende:

db.pets.count()

Resultat:

7

MongoDB-dokumentationen fraråder faktisk at bruge cursor.count() når find() metode kaldes uden et forespørgselsprædikat. Dette skyldes, at resultaterne i sådanne tilfælde er baseret på samlingens metadata, hvilket kan resultere i et omtrentligt antal.

Tæl resultatet af en forespørgsel

Du kan tælle resultatet af en forespørgsel ved at videregive forespørgselskriterierne til find() metode.

Eksempel:

db.pets.find({"type": "Dog"}).count()

Resultat:

4

I dette eksempel fandt vi ud af, at der er fire hunde i samlingen.

Lad os tjekke antallet af en anden forespørgsel. Denne gang finder vi ud af, hvor mange kæledyr der har en vægt, der er større end en vis mængde.

db.pets.find({"weight": { $gt: 10 }}).count()

Resultat:

3

Udvikling

Bemærk, at MongoDB-dokumentationen angiver følgende:

MongoDB-drivere, der er kompatible med 4.0-funktionerne, forælder deres respektive markør og samling count() API'er til fordel for nye API'er til countDocuments() og estimatedDocumentCount() . For de specifikke API-navne for en given driver, se driverdokumentationen.

applySkipLimit Parameter

cursor.count() metoden accepterer én valgfri parameter:applySkipLimit parameter.

Denne parameter specificerer, om effekterne af cursor.skip() skal tages i betragtning og cursor.limit() metoder i optællingen.

Som standard ignorerer den enhver effekt af disse to metoder. For at inkludere effekterne skal du bruge appySkipLimit: true .

Flere oplysninger

Se MongoDB-dokumentationen for mere information.


  1. RDBTools er blevet opkøbt af RedisLabs!

  2. Hvordan tæller man antallet af nøgler, der matcher et mønster?

  3. Redis Database TTL

  4. Redis publicer/abonner:se hvilke kanaler der i øjeblikket abonnerer på