As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$avg
O operador $avg de agregação no Amazon DocumentDB calcula o valor médio da expressão especificada nos documentos que são inseridos no palco. Esse operador é útil para calcular a média de um campo numérico ou expressão em um conjunto de documentos.
Parâmetros
-
expression: A expressão a ser usada para calcular a média. Isso pode ser um caminho de campo (por exemplo"$field") ou uma expressão (por exemplo{ $multiply: ["$field1", "$field2"] }).
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $avg operador para calcular a pontuação média em um conjunto de documentos estudantis.
Crie documentos de amostra
db.students.insertMany([ { name: "John", score: 85 }, { name: "Jane", score: 92 }, { name: "Bob", score: 78 }, { name: "Alice", score: 90 } ]);
Exemplo de consulta
db.students.aggregate([ { $group: { _id: null, avgScore: { $avg: "$score" } }} ]);
Saída
[
{
"_id": null,
"avgScore": 86.25
}
]
Exemplo de uso do operador de janela (MongoDB Shell)
Novo na versão 8.0.2.
O $avg operador também pode ser usado como operador de janela no $setWindowFields palco. Nesse contexto, ele retorna a média da expressão especificada para os documentos em cada janela. Você especifica o operador no output campo e, opcionalmente, define os limites da janela com um window documento.
Crie documentos de amostra
db.readings.insertMany([ { _id: 1, city: "Denver", day: 1, temp: 70 }, { _id: 2, city: "Denver", day: 2, temp: 80 }, { _id: 3, city: "Seattle", day: 1, temp: 60 }, { _id: 4, city: "Seattle", day: 2, temp: 64 }, { _id: 5, city: "Seattle", day: 3, temp: 68 } ]);
Exemplo de consulta
O exemplo a seguir particiona os documentos porcity, classifica cada partição por day e retorna uma média de execução temp do início da partição até o documento atual.
db.readings.aggregate([ { $setWindowFields: { partitionBy: "$city", sortBy: { day: 1 }, output: { runningAvg: { $avg: "$temp", window: { documents: ["unbounded", "current"] } } } } } ]);
Saída
[
{ "_id": 1, "city": "Denver", "day": 1, "temp": 70, "runningAvg": 70 },
{ "_id": 2, "city": "Denver", "day": 2, "temp": 80, "runningAvg": 75 },
{ "_id": 3, "city": "Seattle", "day": 1, "temp": 60, "runningAvg": 60 },
{ "_id": 4, "city": "Seattle", "day": 2, "temp": 64, "runningAvg": 62 },
{ "_id": 5, "city": "Seattle", "day": 3, "temp": 68, "runningAvg": 64 }
]
Cada documento é aumentado com runningAvg a média de temp dentro de sua partição até e incluindo o documento atual.
Exemplos de código
Para ver um exemplo de código para usar o $avg operador, escolha a guia do idioma que você deseja usar. Os exemplos a seguir mostram o uso do acumulador (em$group) e o uso do operador de janela (em$setWindowFields):