sql >> Database >  >> NoSQL >> MongoDB

MongoDB countDocuments()

In MongoDB de db.collection.countDocuments() methode retourneert het aantal documenten dat overeenkomt met de zoekopdracht voor een verzameling of weergave.

De collection deel is de naam van de verzameling of weergave waarop de telbewerking moet worden uitgevoerd.

Voorbeeld

Stel dat we een verzameling hebben met de naam pets met de volgende documenten:

{ "_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 }

We kunnen de volgende query gebruiken om het aantal documenten in de collectie te retourneren:

db.pets.countDocuments({})

Resultaat:

7

Tel het resultaat van een zoekopdracht

U kunt het resultaat van een zoekopdracht tellen door de zoekcriteria door te geven.

Voorbeeld:

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

Resultaat:

4

In dit voorbeeld kwamen we erachter dat er vier honden in de collectie zijn.

Laten we het aantal van een andere zoekopdracht controleren. Deze keer zullen we ontdekken hoeveel huisdieren een groter gewicht hebben dan een bepaald aantal.

db.pets.countDocuments({
    "weight": { $gt: 10 }
})

Resultaat:

3

Beperk het aantal

U gebruikt de limit parameter om een ​​maximum aantal te tellen documenten op te geven.

Voorbeeld:

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

Resultaat:

5

We hebben eerder gezien dat er eigenlijk 7 documenten in deze collectie zitten, maar in dit voorbeeld hebben we het beperkt tot maximaal 5.

Als de limiet hoger is dan de werkelijke telling, wordt het resultaat niet beïnvloed door de limit argument.

Voorbeeld:

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

Resultaat:

7

Documenten overslaan

U kunt tellen met de skip parameter om een ​​aantal documenten over te slaan alvorens te tellen.

Voorbeeld:

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

Resultaat:

2

Beëindiging van count() in het voordeel van countDocuments()

Merk op dat de MongoDB-documentatie het volgende vermeldt:

MongoDB-stuurprogramma's die compatibel zijn met de 4.0-functies depreciëren hun respectieve cursor en verzameling count() API's in het voordeel van nieuwe API's voor countDocuments() en estimatedDocumentCount() . Zie de driverdocumentatie voor de specifieke API-namen voor een bepaalde driver.

Meer informatie

De countDocuments() methode is niet afhankelijk van metadata om de telling te retourneren, zoals de count() methode doet. In plaats daarvan voert het een aggregatie van de documenten uit, wat resulteert in een nauwkeurige telling (wat niet altijd gezegd kan worden voor de count() methode).

Volgens de MongoDB-documentatie, countDocuments() is nauwkeurig, zelfs na een onreine afsluiting of in de aanwezigheid van verweesde documenten in een shard-cluster.

De db.collection.count() methode accepteert ook een hint parameter en een maxTimeMS parameter.

Zie de MongoDB-documentatie voor meer informatie.


  1. Een reeds uitgevoerde taak annuleren in Python RQ?

  2. MongoDB $acosh

  3. limieten van het aantal collecties in databases

  4. Fix "$pullAll vereist een array-argument maar kreeg een dubbele" in MongoDB