I MongoDB är db.collection.estimatedDocumentCount()
metod returnerar antalet dokument i en samling eller vy.
collection
del är namnet på samlingen eller vyn att utföra räkneoperationen på.
db.collection.estimatedDocumentCount()
metoden omsluter count
kommando.
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.pets.estimatedDocumentCount()
Resultat:
7
db.collection.estimatedDocumentCount()
metoden tar inte ett frågefilter. Den använder istället metadata för att returnera dokumentantalet för hela samlingen.
Det fungerar dock fortfarande när det förses med ett tomt dokument.
db.pets.estimatedDocumentCount({})
Resultat:
7
maxTimeMS
Parameter
db.collection.estimatedDocumentCount()
metoden accepterar bara en (valfri) parameter:maxTimeMS
parameter. Detta låter dig ställa in den maximala tid som räkneoperationen kan köras.
Exempel:
db.pets.estimatedDocumentCount({}, { maxTimeMS: 5000 })
Resultat:
7
Utfasning av count()
till förmån för estimatedDocumentCount()
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 till förmån för nya API:er förcountDocuments()
ochestimatedDocumentCount()
. För specifika API-namn för en given drivrutin, se drivrutinsdokumentationen.
Mer information
På ett fragmenterat kluster kommer det resulterande antalet inte att filtrera bort föräldralösa dokument korrekt.
Dessutom, efter en oren avstängning, kan räkningen vara felaktig.
Se MongoDB-dokumentationen för mer information.