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

MongoDB countDocuments()

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