In MongoDB il cursor.count()
il metodo conta il numero di documenti referenziati da un cursore..
Nota che in realtà non esegue la query. Conta e restituisce semplicemente il numero di risultati che verrebbero restituiti dalla query.
Il cursor.count()
è un wrapper per il count
comando.
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.find().count()
Risultato:
7
Questo equivale a fare quanto segue:
db.pets.count()
Risultato:
7
La documentazione di MongoDB in realtà sconsiglia l'uso di cursor.count()
quando find()
viene chiamato senza un predicato di query. Questo perché in questi casi i risultati si basano sui 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 a find()
metodo.
Esempio:
db.pets.find({"type": "Dog"}).count()
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.find({"weight": { $gt: 10 }}).count()
Risultato:
3
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.
Il applySkipLimit
Parametro
Il cursor.count()
accetta un parametro facoltativo:applySkipLimit
parametro.
Questo parametro specifica se considerare gli effetti di cursor.skip()
e cursor.limit()
metodi nel conteggio.
Per impostazione predefinita, ignora tutti gli effetti di questi due metodi. Per includere gli effetti, usa appySkipLimit: true
.
Maggiori informazioni
Consulta la documentazione di MongoDB per ulteriori informazioni.