In MongoDB il db.collection.count()
il metodo restituisce il conteggio dei documenti che corrisponderebbero a un find()
query per la raccolta o la visualizzazione.
La collection
part è il nome della raccolta o della vista su cui eseguire l'operazione di conteggio.
Nota che in realtà non esegue un find()
operazione. Conta e restituisce semplicemente il numero di risultati che corrispondono a una query.
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.count()
Risultato:
7
Questo equivale a fare quanto segue:
db.pets.find().count()
Risultato:
7
La documentazione di MongoDB in realtà sconsiglia l'uso di db.collection.count()
senza un predicato di query. Questo perché il metodo restituisce risultati in base ai metadati della raccolta, il che potrebbe comportare un conteggio approssimativo.
Conta il risultato di una query
Puoi contare il risultato di una query passando i criteri della query.
Esempio:
db.pets.count({
"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.count({
"weight": { $gt: 10 }
})
Risultato:
3
Limita il conteggio
Puoi utilizzare il limit
parametro per specificare un numero massimo di documenti da contare.
Esempio:
db.pets.count( {}, { 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.count( {}, { 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.count( {}, { skip: 5 } )
Risultato:
2
Deprecazione
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, consulta la documentazione del driver.
Maggiori informazioni
Il db.collection.count()
è un wrapper per il count
comando.
Il db.collection.count()
accetta altri parametri, come hint
, maxTimeMS
, readConcern
e collation
.
Consulta la documentazione di MongoDB per ulteriori informazioni.