sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB cursor.count()

I MongoDB är cursor.count() metoden räknar antalet dokument som en markör refererar till...

Observera att den faktiskt inte utför frågan. Den räknar och returnerar helt enkelt antalet resultat som skulle returneras av frågan.

cursor.count() metoden är ett omslag för count kommando.

Exempel

Anta att vi har en samling som heter pets med följande dokument:

{ "_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 använda följande fråga för att returnera antalet dokument i samlingen:

db.pets.find().count()

Resultat:

7

Detta motsvarar att göra följande:

db.pets.count()

Resultat:

7

MongoDB-dokumentationen avråder faktiskt från att använda cursor.count() när find() metoden anropas utan ett frågepredikat. Detta beror på att resultaten i sådana fall baseras på samlingens metadata, vilket kan resultera i ett ungefärligt antal.

Räkna resultatet av en fråga

Du kan räkna resultatet av en fråga genom att skicka frågekriterierna till find() metod.

Exempel:

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

Resultat:

4

I det här exemplet fick vi reda på att det finns fyra hundar i samlingen.

Låt oss kontrollera antalet för en annan fråga. Den här gången får vi reda på hur många husdjur som väger mer än en viss mängd.

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

Resultat:

3

Utfasning

Observera att MongoDB-dokumentationen anger följande:

MongoDB-drivrutiner som är kompatibla med 4.0-funktionerna fasar ut deras respektive markör och samling count() API:er till förmån för nya API:er för countDocuments() och estimatedDocumentCount() . För specifika API-namn för en given drivrutin, se drivrutinsdokumentationen.

applySkipLimit Parameter

cursor.count() metoden accepterar en valfri parameter:applySkipLimit parameter.

Den här parametern anger om effekterna av cursor.skip() ska beaktas och cursor.limit() metoder i räkningen.

Som standard ignorerar den alla effekter av dessa två metoder. För att inkludera effekterna, använd appySkipLimit: true .

Mer information

Se MongoDB-dokumentationen för mer information.


  1. Uppdatera flera element i en array i mongodb

  2. Mongo konverterar alla numeriska fält som lagras som sträng

  3. Vad är det korrekta sättet att göra en HAVING i en MongoDB GROUP BY?

  4. Vad är MapReduce Key Value Pair i Hadoop?