MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB cursor.count()

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