$sum (Acumulador de Soma)

Última atualização: 2026-10-09

$sum (Acumulador de Soma)

$sum é um acumulador que calcula o total de um campo especificado em um grupo (ou uma contagem quando recebe o literal 1). É usado dentro de $group para somas/contagens e em $project para somar elementos de array. Como expressão, ele soma uma expressão especificada em todos os documentos de entrada.

CategoriaAcumuladores
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

// soma dentro de $group
{ $group: { _id: <chave>, total: { $sum: "$field" } } }
// contagem
{ $group: { _id: <chave>, count: { $sum: 1 } } }

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $sum: total e contagem por item
db.sales.aggregate([
  { $group: { _id: "$item", total: { $sum: "$price" }, count: { $sum: 1 } } }
])

Saída:

{ "_id": "abc", "total": 25, "count": 2 }
{ "_id": "xyz", "total": 30, "count": 3 }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que acontece quando $sum encontra um campo string?
AStrings e valores não numéricos são ignorados (sem erro). Para tratamento estrito, converta com $toInt/$toDouble ou forneça padrão com $ifNull.
QO acumulador $sum só pode ser usado dentro de $group?
AComo acumulador, ele é específico de $group. Porém $sum também funciona como expressão de agregação simples, ex.: em $project para somar um array, com a mesma semântica.
QO que $sum retorna para um array vazio?
AEle retorna 0. Em $group, se um grupo não tiver documentos correspondentes ou tiver um array vazio, $sum acumula até 0, o que é útil como fallback de contagem.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%