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örcountDocuments()
ochestimatedDocumentCount()
. 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.