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

MongoDB countDocuments()

I MongoDB er db.collection.countDocuments() metode returnerer antallet af dokumenter, der matcher forespørgslen for en samling eller visning.

collection del er navnet på samlingen eller visningen, der skal udføres tælleoperationen på.

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.pets.countDocuments({})

Resultat:

7

Tæl resultatet af en forespørgsel

Du kan tælle resultatet af en forespørgsel ved at bestå forespørgselskriterierne.

Eksempel:

db.pets.countDocuments({
    "type": "Dog"
})

Resultat:

4

I dette eksempel fandt vi ud af, 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.pets.countDocuments({
    "weight": { $gt: 10 }
})

Resultat:

3

Begræns antallet

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

Eksempel:

db.pets.countDocuments( {}, { limit: 5 } )

Resultat:

5

Vi så før, at der faktisk er 7 dokumenter i denne samling, men i dette eksempel begrænsede vi det til maksimalt at tælle 5.

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

Eksempel:

db.pets.countDocuments( {}, { limit: 10 } )

Resultat:

7

Spring af dokumenter over

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

Eksempel:

db.pets.countDocuments( {}, { skip: 5 } )

Resultat:

2

Udvikling af count() til fordel for countDocuments()

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 til fordel for nye API'er til countDocuments() og estimatedDocumentCount() . For de specifikke API-navne for en given driver, se driverdokumentationen.

Flere oplysninger

countDocuments() metoden er ikke afhængig af metadata for at returnere antallet som count() metode gør. I stedet udfører den en aggregering af dokumenterne, hvilket resulterer i en nøjagtig optælling (hvilket ikke altid kan siges for count() metode).

Ifølge MongoDB-dokumentationen, countDocuments() er nøjagtig selv efter en uren nedlukning eller ved tilstedeværelse af forældreløse dokumenter i en sønderdelt klynge.

db.collection.count() metode accepterer også et hint parameter og en maxTimeMS parameter.

Se MongoDB-dokumentationen for mere information.


  1. 5 måder at vælge rækker med den maksimale værdi for deres gruppe i SQL

  2. Redis indstilling af TTL på hSet Keys

  3. Sådan bygger du en URL Shortener med Node.js og MongoDB

  4. Sådan indsætter du flere elementer på én gang i en MongoDB-samling