Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$count (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Comportamento
  • Exemplo
$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 o estágio do pipeline de agregação $count. Para o acumulador de agregação do $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 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 forma de protótipo:

{ $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 ..

Dica

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

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

onde myCount seria o campo de saída que contém a contagem. Você pode especificar outro nome para o campo de saída.

Dica

Veja também:

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

Uma coleção chamada scores possui os seguintes documentos:

{ "_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 os seguintes resultados:

{ "passing_scores" : 4 }
← $collStats (agregação)