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

Comando conteggio MongoDB

In MongoDB il count comando di aggregazione conta il numero di documenti in una raccolta o in una vista.

Restituisce un documento che contiene il conteggio e lo stato del 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.runCommand( { count: "pets" } )

Risultato:

{ "n" : 7, "ok" : 1 }

La documentazione di MongoDB in realtà sconsiglia di utilizzare il count comando e i relativi metodi wrapper senza un predicato di query. Questo perché, se eseguito senza un predicato di query, 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 utilizzando il seguente modulo.

Esempio:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" } 
} )

Risultato:

{ "n" : 4, "ok" : 1 }

In questo esempio, possiamo vedere che ci sono quattro cani nella collezione.

Controlliamo il conteggio di un'altra query. Questa volta scopriremo quanti animali hanno un peso maggiore di una certa quantità.

db.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Risultato:

{ "n" : 3, "ok" : 1 }

Limita il conteggio

Puoi utilizzare il limit parametro per specificare un numero massimo di documenti da contare.

Esempio:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Risultato:

{ "n" : 3, "ok" : 1 }

Abbiamo visto prima che in realtà ci sono 4 cani, ma in questo esempio l'abbiamo limitato a contare un massimo di 3.

Se il limite è superiore al conteggio effettivo, il risultato non sarà influenzato dal limit argomento.

Esempio:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Risultato:

{ "n" : 4, "ok" : 1 }

Saltare i documenti

Puoi usare il skip parametro per saltare un numero di documenti prima del conteggio.

Esempio:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Risultato:

{ "n" : 2, "ok" : 1 }

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 (che esegue il count command) a favore di nuove API che corrispondono a countDocuments() e estimatedDocumentCount() . Per i nomi API specifici per un determinato driver, vedere la documentazione dell'API del driver.

Maggiori informazioni

Il count comando include altri campi, come hint , comment , readConcern e collation .

Consulta la documentazione di MongoDB per ulteriori informazioni.