I MongoDB är db.collection.count()
metod returnerar antalet dokument som skulle matcha en find()
fråga för samlingen eller vyn.
collection
del är namnet på samlingen eller vyn att utföra räkneoperationen på.
Observera att den faktiskt inte utför en find()
drift. Den räknar helt enkelt och returnerar antalet resultat som matchar en fråga.
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.count()
Resultat:
7
Detta motsvarar att göra följande:
db.pets.find().count()
Resultat:
7
MongoDB-dokumentationen avråder faktiskt från att använda db.collection.count()
utan ett frågepredikat. Detta beror på att metoden returnerar resultat baserat 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 godkänna frågekriterierna.
Exempel:
db.pets.count({
"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.count({
"weight": { $gt: 10 }
})
Resultat:
3
Begränsa antalet
Du kan använda limit
parameter för att ange ett maximalt antal dokument som ska räknas.
Exempel:
db.pets.count( {}, { 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.count( {}, { 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.count( {}, { skip: 5 } )
Resultat:
2
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örcountDocuments()
ochestimatedDocumentCount()
. För specifika API-namn för en given drivrutin, se drivrutinsdokumentationen.
Mer information
db.collection.count()
metoden är ett omslag för count
kommando.
db.collection.count()
metoden accepterar andra parametrar, såsom hint
, maxTimeMS
, readConcern
och collation
.
Se MongoDB-dokumentationen för mer information.