In MongoDB il db.collection.countDocuments()
restituisce il conteggio dei documenti che corrispondono alla query per una raccolta o una vista.
La collection
part è il nome della raccolta o della vista su cui eseguire l'operazione di conteggio.
Esempio
Supponiamo di avere una collezione chiamata pets
con i seguenti documenti:
{ "_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 }
Possiamo utilizzare la seguente query per restituire il numero di documenti nella raccolta:
db.pets.countDocuments({})
Risultato:
7
Conta il risultato di una query
Puoi contare il risultato di una query passando i criteri della query.
Esempio:
db.pets.countDocuments({
"type": "Dog"
})
Risultato:
4
In questo esempio, abbiamo scoperto che nella collezione sono presenti quattro cani.
Controlliamo il conteggio di un'altra query. Questa volta scopriremo quanti animali hanno un peso maggiore di una certa quantità.
db.pets.countDocuments({
"weight": { $gt: 10 }
})
Risultato:
3
Limita il conteggio
Usi il limit
parametro per specificare un numero massimo di documenti da contare.
Esempio:
db.pets.countDocuments( {}, { limit: 5 } )
Risultato:
5
Abbiamo visto prima che ci sono effettivamente 7 documenti in questa raccolta, ma in questo esempio l'abbiamo limitato a contare un massimo di 5.
Se il limite è superiore al conteggio effettivo, il risultato non sarà influenzato dal limit
argomento.
Esempio:
db.pets.countDocuments( {}, { limit: 10 } )
Risultato:
7
Saltare i documenti
Puoi contare usando il skip
parametro per saltare un numero di documenti prima del conteggio.
Esempio:
db.pets.countDocuments( {}, { skip: 5 } )
Risultato:
2
Deprecazione di count()
a favore di countDocuments()
Nota che la documentazione di MongoDB afferma quanto segue:
I driver MongoDB compatibili con le funzionalità 4.0 deprecano il rispettivo cursore e la raccolta
count()
API a favore di nuove API percountDocuments()
eestimatedDocumentCount()
. Per i nomi API specifici per un determinato driver, vedere la documentazione del driver.
Maggiori informazioni
Il countDocuments()
il metodo non si basa sui metadati per restituire il conteggio come count()
metodo fa. Invece, esegue un'aggregazione dei documenti, che si traduce in un conteggio accurato (che non si può sempre dire per il count()
metodo).
Secondo la documentazione di MongoDB, countDocuments()
è accurato anche dopo un arresto non corretto o in presenza di documenti orfani in un cluster partizionato.
Il db.collection.count()
accetta anche un hint
parametro e un maxTimeMS
parametro.
Consulta la documentazione di MongoDB per ulteriori informazioni.