Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

count (comando de banco de dados)

count

Conta documentos em uma coleção ou visualização. Retorna um documento com a contagem, n, e o status do comando, ok.

Dica

Em mongosh, esse comando também pode ser executado por meio do método auxiliar count().

Os métodos auxiliares são práticos para os usuários mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

Observação

Os drivers do MongoDB descontinuam suas APIs de cursor e coleção count() e usam APIs específicas do driver que correspondem a db.collection.countDocuments() e db.collection.estimatedDocumentCount(). Para obter nomes de API específicos, consulte a documentação de API do driver.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Importante

Esse comando tem suporte limitado nos clusters M0 e Flex. Para saber mais, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

O comando tem a seguinte sintaxe:

Observação

O MongoDB valida os nomes das opções para o comando count. O comando gera um erro se você especificar um nome de opção desconhecido.

db.runCommand(
{
count: <collection or view>,
query: <document>,
limit: <integer>,
skip: <integer>,
hint: <hint>,
readConcern: <document>,
maxTimeMS: <integer>,
collation: <document>,
comment: <any>
}
)

count tem os seguintes campos:

Campo
Tipo
Descrição

count

string

O nome da collection ou visualização para contar.

query

documento

Opcional. Uma query que seleciona quais documentos contar na collection ou visualização.

limit

inteiro

Opcional. O número máximo de documentos correspondentes a serem devolvidos.

skip

inteiro

Opcional. O número de documentos correspondentes a ignorar antes de retornar os resultados.

hint

string ou documento

Opcional. O índice a ser utilizado. Especifique o nome do índice como uma string ou o documento de especificação do índice.

readConcern

documento

Opcional. Especifica a read concern. A opção tem a seguinte sintaxe:

readConcern: { level: <value> }

Os possíveis níveis de read concern são:

Para obter mais informações sobre os read concern, consulte Níveis de read concern.

maxTimeMS

non-negative integer

Opcional.

Especifica um limite de tempo em milissegundos. Se você não especificar um valor para maxTimeMS, as operações não atingirão o tempo limite. Um valor 0 especifica explicitamente o comportamento ilimitado padrão.

O MongoDB encerra as operações que excedem o limite de tempo alocado usando o mesmo mecanismo de db.killOp(). O MongoDB só encerra uma operação em um de seus pontos de interrupção designados.

collation

documento

Opcional.

Opcional. Especifica a agrupamento para utilizar para a operação.

A colocação permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e marcas de acento.

A opção de agrupamento tem a seguinte sintaxe:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

Ao especificar agrupamento, o campo locale é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.

Se o agrupamento não for especificado, mas a coleção tiver um agrupamento padrão (consulte db.createCollection()), a operação usará o agrupamento especificado para a coleção.

Se nenhum agrupamento for especificado para a coleção ou para as operações, o MongoDB usa a comparação binária simples usada nas versões anteriores para comparações de strings.

Você não pode especificar vários agrupamentos para uma operação. Por exemplo, você não pode especificar agrupamentos diferentes por campo ou, se estiver realizando uma busca com uma classificação, não poderá usar um agrupamento para a busca e outro para a classificação.

comment

any

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

A partir do MongoDB 6.0, o comando count está incluído na Stable API V1. Para usar o comando count na Stable API, você deve conectar seu driver a uma implantação que esteja executando o MongoDB 6.0 ou superior.

Ao chamar count sem um predicado de query, você pode receber contagens imprecisas de documentos. Sem um predicado de query, os comandos count retornam resultados com base nos metadados da coleção, o que pode resultar em uma contagem aproximada. Em particular:

Para contagens com base nos metadados da coleção, consulte também o estágio do pipeline do CollStats com a opção de contagem.

Quando você usa count em uma transação, a contagem resultante não filtrará transações multidocumentos não confirmada.

Para obter detalhes, consulte Operações de transações e contagem.

Em um cluster fragmentado, o comando count quando executado sem um predicado de consulta pode resultar em uma contagem imprecisa se documentos órfãos existirem ou se uma migração de parte estiver em andamento.

Para evitar estas situações, em um cluster fragmentado, utilize o método db.collection.aggregate():

Você pode usar o estágio $count para contar os documentos. Por exemplo, a seguinte operação conta os documentos em uma coleção:

db.collection.aggregate( [
{ $count: "myCount" }
])

O estágio $count é equivalente à seguinte sequência $group + $project:

db.collection.aggregate( [
{ $group: { _id: null, count: { $sum: 1 } } },
{ $project: { _id: 0 } }
] )

Dica

$collStats para retornar uma contagem aproximada com base nos metadados da coleção.

Após um desligamento impuro de um mongod usando o mecanismo de armazenamento Wired Tiger, as estatísticas de contagem relatadas por count podem ser imprecisas.

A quantidade de desvio depende do número de operações de inserção, atualização ou exclusão executadas entre o último ponto de verificação e o desligamento não limpo. Os pontos de verificação geralmente ocorrem a cada 60 segundos. No entanto, mongod instâncias executadas com configurações de --syncdelay não padrão podem ter pontos de verificação mais ou menos frequentes.

Execute validate em cada collection no mongod para restaurar as estatísticas depois de um desligamento impróprio.

Após um desligamento impróprio:

Observação

Essa perda de precisão só se aplica a operações count que não incluem um documento de consulta.

Se o cliente que emitiu count se desconectar antes da conclusão da operação, o MongoDB marcará count para encerramento usando killOp.

A seguinte operação conta todos os documentos na coleção orders:

db.runCommand( { count: 'orders' } )

A operação retorna o seguinte documento:

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

A seguinte operação conta documentos na coleção orders onde o campo ord_dt é maior que Date('01/01/2012'):

db.runCommand( { count:'orders',
query: { ord_dt: { $gt: new Date('01/01/2012') } }
} )

A operação retorna o seguinte documento:

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

A operação a seguir conta documentos na coleção orders em que o campo ord_dt é maior que Date('01/01/2012'), ignorando as primeiras 10 correspondências:

db.runCommand( { count:'orders',
query: { ord_dt: { $gt: new Date('01/01/2012') } },
skip: 10 } )

A operação retorna o seguinte documento:

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

A operação seguinte utiliza o índice { status: 1 } para contar documentos na coleção orders onde o campo ord_dt é maior que Date('01/01/2012') e o campo status é igual a "D":

db.runCommand(
{
count:'orders',
query: {
ord_dt: { $gt: new Date('01/01/2012') },
status: "D"
},
hint: { status: 1 }
}
)

A operação retorna o seguinte documento:

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

Para substituir o nível de preocupação de leitura padrão do "local", utilize a opção readConcern.

A operação a seguir em um conjunto de réplicas especifica uma read concern de "majority" para ler a cópia mais recente dos dados confirmados como gravados na maioria dos nós.

Importante

  • Para utilizar o nível readConcern de "majority", você deve especificar uma condição query não vazia.

  • Independentemente do nível de read concern, os dados mais recentes em um nó podem não refletir a versão mais recente dos dados no sistema.

db.runCommand(
{
count: "restaurants",
query: { rating: { $gte: 4 } },
readConcern: { level: "majority" }
}
)

Para garantir que um único thread possa ler suas próprias gravações, use "majority" read concern e "majority" write concern em relação ao primário do conjunto de réplicas.