I MongoDB count
aggregeringskommandot räknar antalet dokument i en samling eller en vy.
Den returnerar ett dokument som innehåller räkningen såväl som kommandostatus.
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.runCommand( { count: "pets" } )
Resultat:
{ "n" : 7, "ok" : 1 }
MongoDB-dokumentationen rekommenderar faktiskt att man inte använder count
kommandot och dess omslagsmetoder utan ett frågepredikat. Detta beror på att när den körs utan ett frågepredikat returnerar den 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 använda följande formulär.
Exempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
Resultat:
{ "n" : 4, "ok" : 1 }
I det här exemplet kan vi se 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.runCommand( { count:'pets',
query: { weight: { $gt: 10 } }
} )
Resultat:
{ "n" : 3, "ok" : 1 }
Begränsa antalet
Du kan använda limit
parameter för att ange ett maximalt antal dokument som ska räknas.
Exempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 3
} )
Resultat:
{ "n" : 3, "ok" : 1 }
Vi såg tidigare att det faktiskt finns 4 hundar, men i det här exemplet begränsade vi det till att räkna maximalt 3.
Om gränsen är högre än det faktiska antalet, kommer resultatet inte att påverkas av limit
argument.
Exempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 10
} )
Resultat:
{ "n" : 4, "ok" : 1 }
Hoppa över dokument
Du kan använda skip
parameter för att hoppa över ett antal dokument innan räkning.
Exempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
skip: 2
} )
Resultat:
{ "n" : 2, "ok" : 1 }
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 (som körcount
kommando) till förmån för nya API:er som motsvararcountDocuments()
ochestimatedDocumentCount()
. För specifika API-namn för en given drivrutin, se dokumentationen för drivrutinens API.
Mer information
count
kommandot innehåller andra fält, såsom hint
, comment
, readConcern
och collation
.
Se MongoDB-dokumentationen för mer information.