sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB count Kommando

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ör count kommando) till förmån för nya API:er som motsvarar countDocuments() och estimatedDocumentCount() . 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.


  1. skapa och uppdatera flera MongoDB-dokument i ett samtal

  2. Hur man byter ut sträng i alla dokument i Mongo

  3. Infogar och frågar efter datum med MongoDB och Nodejs

  4. Hur frågar man kapslade objekt?