sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB tælle kommando

I MongoDB er count aggregeringskommando tæller antallet af dokumenter i en samling eller en visning.

Det returnerer et dokument, der indeholder optællingen såvel som kommandostatus.

Eksempel

Antag, at vi har en samling kaldet pets med følgende dokumenter:

{ "_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 bruge følgende forespørgsel til at returnere antallet af dokumenter i samlingen:

db.runCommand( { count: "pets" } )

Resultat:

{ "n" : 7, "ok" : 1 }

MongoDB-dokumentationen fraråder faktisk at bruge count kommando og dens indpakningsmetoder uden et forespørgselsprædikat. Dette skyldes, at når det køres uden et forespørgselsprædikat, returnerer det resultater baseret på samlingens metadata, hvilket kan resultere i et omtrentligt antal.

Tæl resultatet af en forespørgsel

Du kan tælle resultatet af en forespørgsel ved at bruge følgende formular.

Eksempel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" } 
} )

Resultat:

{ "n" : 4, "ok" : 1 }

I dette eksempel kan vi se, at der er fire hunde i samlingen.

Lad os tjekke antallet af en anden forespørgsel. Denne gang finder vi ud af, hvor mange kæledyr der har en vægt, der er større end en vis mængde.

db.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Resultat:

{ "n" : 3, "ok" : 1 }

Begræns antallet

Du kan bruge limit parameter for at angive et maksimalt antal dokumenter, der skal tælles.

Eksempel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Resultat:

{ "n" : 3, "ok" : 1 }

Vi så før, at der faktisk er 4 hunde, men i dette eksempel begrænsede vi det til maksimalt at tælle 3.

Hvis grænsen er højere end det faktiske antal, vil resultatet ikke blive påvirket af limit argument.

Eksempel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Resultat:

{ "n" : 4, "ok" : 1 }

Spring af dokumenter over

Du kan bruge skip parameter for at springe et antal dokumenter over før optælling.

Eksempel:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Resultat:

{ "n" : 2, "ok" : 1 }

Udvikling

Bemærk, at MongoDB-dokumentationen angiver følgende:

MongoDB-drivere, der er kompatible med 4.0-funktionerne, forælder deres respektive markør og samling count() API'er (som kører count kommando) til fordel for nye API'er, der svarer til countDocuments() og estimatedDocumentCount() . For de specifikke API-navne for en given driver, se driver API-dokumentationen.

Flere oplysninger

count kommandoen inkluderer andre felter, såsom hint , comment , readConcern , og collation .

Se MongoDB-dokumentationen for mere information.


  1. Gør spring-data-mongodb multi-lejer

  2. Sådan sikrer du MongoDB med brugernavn og adgangskode

  3. Opkald lagret funktion i mongodb

  4. Importmetoderne for mongoimport