MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Comando de contagem do MongoDB


No MongoDB o count o comando de agregação conta o número de documentos em uma coleção ou visualização.

Ele retorna um documento que contém a contagem e o status do comando.

Exemplo


Suponha que tenhamos uma coleção chamada pets com os seguintes documentos:
{ "_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 }

Podemos usar a seguinte consulta para retornar o número de documentos na coleção:
db.runCommand( { count: "pets" } )

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

A documentação do MongoDB realmente não recomenda usar o count comando e seus métodos wrapper sem um predicado de consulta. Isso porque, quando executado sem um predicado de consulta, ele retorna resultados com base nos metadados da coleção, o que pode resultar em uma contagem aproximada.

Contar o resultado de uma consulta


Você pode contar o resultado de uma consulta usando o formulário a seguir.

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

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

Neste exemplo, podemos ver que há quatro cães na coleção.

Vamos verificar a contagem de outra consulta. Desta vez vamos descobrir quantos animais de estimação têm um peso superior a uma certa quantidade.
db.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

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

Limitar a contagem


Você pode usar o limit parâmetro para especificar um número máximo de documentos a serem contados.

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

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

Vimos antes que na verdade existem 4 cães, mas neste exemplo limitamos a contar no máximo 3.

Se o limite for maior que a contagem real, o resultado não será afetado pelo limit argumento.

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

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

Ignorando documentos


Você pode usar o skip parâmetro para pular vários documentos antes de contar.

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

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

Descontinuação


Observe que a documentação do MongoDB afirma o seguinte:

Drivers MongoDB compatíveis com os recursos 4.0 descontinuam seus respectivos cursores e coleções count() APIs (que executam o count command) em favor de novas APIs que correspondem a countDocuments() e estimatedDocumentCount() . Para os nomes de API específicos para um determinado driver, consulte a documentação da API do driver.

Mais informações


A count O comando inclui outros campos, como hint , comment , readConcern , e collation .

Consulte a documentação do MongoDB para obter mais informações.