sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB countDocuments()

I MongoDB är db.collection.countDocuments() metod returnerar antalet dokument som matchar frågan för en samling eller vy.

collection del är namnet på samlingen eller vyn att utföra räkneoperationen på.

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.countDocuments({})

Resultat:

7

Räkna resultatet av en fråga

Du kan räkna resultatet av en fråga genom att godkänna frågekriterierna.

Exempel:

db.pets.countDocuments({
    "type": "Dog"
})

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.countDocuments({
    "weight": { $gt: 10 }
})

Resultat:

3

Begränsa antalet

Du använder limit parameter för att ange ett maximalt antal dokument som ska räknas.

Exempel:

db.pets.countDocuments( {}, { limit: 5 } )

Resultat:

5

Vi såg tidigare att det faktiskt finns 7 dokument i den här samlingen, men i det här exemplet begränsade vi det till att räkna maximalt 5.

Om gränsen är högre än det faktiska antalet, kommer resultatet inte att påverkas av limit argument.

Exempel:

db.pets.countDocuments( {}, { limit: 10 } )

Resultat:

7

Hoppa över dokument

Du kan räkna med skip parameter för att hoppa över ett antal dokument innan räkning.

Exempel:

db.pets.countDocuments( {}, { skip: 5 } )

Resultat:

2

Utfasning av count() till förmån för countDocuments()

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.

Mer information

countDocuments() Metoden förlitar sig inte på metadata för att returnera antalet som count() metoden gör. Istället utför den en aggregering av dokumenten, vilket resulterar i en korrekt räkning (vilket inte alltid kan sägas för count() metod).

Enligt MongoDB-dokumentationen, countDocuments() är korrekt även efter en oren avstängning eller i närvaro av föräldralösa dokument i ett splittrat kluster.

db.collection.count() metoden accepterar också en hint parameter och en maxTimeMS parameter.

Se MongoDB-dokumentationen för mer information.


  1. hur man använder fylla och aggregera i samma uttalande?

  2. Söker efter värdet av något fält i MongoDB utan att uttryckligen namnge det

  3. Återinförs ur funktion, eller sorterar du konstigt?

  4. gruppera efter frågor om meteorsamling