$avg (Acumulador de Média)
Última atualização: 2026-10-09
$avg (Acumulador de Média)
$avg é um acumulador que calcula a média de um campo em um grupo dentro de $group, ou a média dos elementos de um array em $project. Ele ignora valores null e ausentes, calculando a média apenas dos números. Comum em relatórios; a expressão cuja média é calculada pode ser arbitrariamente complexa.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, avg: { $avg: "$field" } } } // ou calcule a média de um array em $project
Retorno:Média numérica (valores null e ausentes ignorados)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $avg: preço médio por item
db.sales.aggregate([
{ $group: { _id: '$item', avg: { $avg: '$price' } } }
])
Saída:
{ "_id": "Pen", "avg": 45.5 }
{ "_id": "Book", "avg": 12.0 }
📌 Notas
- Valores null, ausentes e não numéricos são ignorados
- Em $project, ele calcula a média dos elementos do array
- Combine com $sum e $count para médias ponderadas
🏷️ Tags Relacionados
💡 Casos Relacionados
Pipelines de agregação avançados: expressões e transformações complexas
Introdução aos pipelines de agregação: o método `aggregate` e o estágio básico
$facet + $bucket + Pesquisa de texto/geoespacial
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que acontece quando $avg encontra um campo ausente?
AValores ausentes e null são ignorados; apenas os números presentes entram na média.
Q$avg pode ser usado em $project?
ASim, ele calcula a média dos elementos do array, por exemplo { $project: { a: { $avg: '$scores' } } }.
QComo calculo uma média ponderada?
AAcumule valor-vezes-peso com $sum e divida pela $sum dos pesos.