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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

$avg (expressão)

$avg

Retorna a média dos elementos da array numérica.

Observação

Desambiguação

Esta página descreve $avg quando usado como uma expressão, que retorna a média dos elementos numéricos em uma array.

Você também pode usar $avg nestes outros contextos:

Quando usado como expressão, $avg tem uma destas sintaxes:

{ $avg: <expression> }

Nesta sintaxe, o operando é uma expressão única que se torna uma array. $avg percorre a array e retorna a média dos valores numéricos da array. Por exemplo, { $avg: "$testScores" } retorna a média de valores numéricos no campo de array testScores.

{ $avg: [ <expression1>, <expression2> ... ] }

Nesta sintaxe, cada expressão na array de entrada é um único valor numérico. $avg retorna a média dos valores de entrada individuais. Se qualquer uma das expressões de entrada for resolvida para uma array, $avg não percorrerá a array e, em vez disso, tratará a array como um valor não numérico.

O tipo de retorno padrão é duplo. Se pelo menos um valor de entrada for um decimal, o tipo de retorno será um decimal.

$avg ignora valores não numéricos, incluindo valores ausentes. Se todos os valores de entrada forem não numéricos, $avg retornará null.

Criar uma coleção students com os seguintes documentos:

db.students.insertMany( [
{ _id: 1, quizzes: [ 10, 6, 7 ], labs: [ 5, 8 ], final: 80, midterm: 75 },
{ _id: 2, quizzes: [ 9, 10 ], labs: [ 8, 8 ], final: 95, midterm: 80 },
{ _id: 3, quizzes: [ 4, 5, 5 ], labs: [ 6, 5 ], final: 78, midterm: 70 }
] )

A operação a seguir usa $avg no estágio $project para calcular médias para os seguintes campos:

  • quizzes

  • labs

  • Média combinada de final e midterm

db.students.aggregate( [
{
$project: {
quizAvg: { $avg: "$quizzes"},
labAvg: { $avg: "$labs" },
examAvg: { $avg: [ "$final", "$midterm" ] }
}
}
] )

Saída

[
{ _id: 1, quizAvg: 7.666666666666667, labAvg: 6.5, examAvg: 77.5 },
{ _id: 2, quizAvg: 9.5, labAvg: 8, examAvg: 87.5 },
{ _id: 3, quizAvg: 4.666666666666667, labAvg: 5.5, examAvg: 74 }
]