sql >> Database >  >> NoSQL >> MongoDB

MongoDB geschatteDocumentCount()

In MongoDB de db.collection.estimatedDocumentCount() methode retourneert het aantal documenten in een verzameling of weergave.

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

De db.collection.estimatedDocumentCount() methode wikkelt de count commando.

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.estimatedDocumentCount()

Resultaat:

7

De db.collection.estimatedDocumentCount() methode heeft geen queryfilter nodig. In plaats daarvan gebruikt het metadata om het aantal documenten voor de hele collectie te retourneren.

Het werkt echter nog steeds als het wordt geleverd met een leeg document.

db.pets.estimatedDocumentCount({})

Resultaat:

7

De maxTimeMS Parameter

De db.collection.estimatedDocumentCount() methode accepteert slechts één (optionele) parameter:de maxTimeMS parameter. Hiermee kunt u de maximale hoeveelheid tijd instellen die de telbewerking kan uitvoeren.

Voorbeeld:

db.pets.estimatedDocumentCount({}, { maxTimeMS: 5000 })

Resultaat:

7

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

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

Op een shard-cluster filtert het resulterende aantal verweesde documenten niet correct uit.

Na een onreine afsluiting kan de telling ook onjuist zijn.

Zie de MongoDB-documentatie voor meer informatie.


  1. Mongoose subdocument zoeken/bijwerken

  2. MongoDB aggregaat vullen ontbrekende dagen

  3. Verbinding met MongoDB controleren

  4. Hoe maak je een geneste index in MongoDB?