Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$count (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Comportamento
  • Exemplos
  • Saiba mais
$count

Passa um documento para a próxima etapa que contém uma contagem do número de documentos inseridos na etapa.

Observação

Desambiguação

Esta página descreve a fase do pipeline de agregação $count. Para o acumulador de agregação $count, consulte $count (aggregation accumulator).

Você pode utilizar o $count para implantações hospedadas nos seguintes ambientes:

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

  • 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

$count tem a seguinte sintaxe:

{ $count: <string> }

<string> é o nome do campo de saída que tem a contagem como seu valor. <string> deve ser uma string não vazia, não deve começar com $ e não deve conter o caractere ..

O tipo de retorno é representado pelo menor tipo que pode armazenar o valor final da contagem: integerlongdouble

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

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

myCount é o campo de saída que armazena a contagem. Você pode especificar outro nome para o campo de saída.

Se o conjunto de dados de entrada estiver vazio, $count não retornará um resultado.

Dica

Veja também:

db.collection.countDocuments() que envolve o estágio de agregação $group com uma expressão $sum.

Crie uma collection chamada scores com estes documentos:

db.scores.insertMany( [
{ "_id" : 1, "subject" : "History", "score" : 88 },
{ "_id" : 2, "subject" : "History", "score" : 92 },
{ "_id" : 3, "subject" : "History", "score" : 97 },
{ "_id" : 4, "subject" : "History", "score" : 71 },
{ "_id" : 5, "subject" : "History", "score" : 79 },
{ "_id" : 6, "subject" : "History", "score" : 83 }
] )

A seguinte operação de agregação tem duas etapas:

  1. O estágio $match exclui documentos que têm um valor score menor ou igual a 80 para passar os documentos com score maior que 80 para o próximo estágio.

  2. O estágio $count retorna uma contagem dos documentos restantes no pipeline de agregação e atribui o valor a um campo chamado passing_scores.

db.scores.aggregate( [
{ $match: { score: { $gt: 80 } } },
{ $count: "passing_scores" }
] )

A operação retorna este resultado:

{ "passing_scores" : 4 }

Se o conjunto de dados de entrada estiver vazio, $count não retornará um resultado. O exemplo a seguir não retorna um resultado porque não há documentos com pontuações superiores a 99:

db.scores.aggregate( [
{ $match: { score: { $gt: 99 } } },
{ $count: "high_scores" }
] )

Voltar

$collStats