Mongodb: como calcular o valor médio de um campo
Você pode usar os seguintes métodos para calcular o valor médio de um campo no MongoDB:
Método 1: Calcular a média do campo
db.collection.aggregate([{ $group : {_id: null , avg_val:{$avg: " $valueField "}}}])
Método 2: Calcular a média de campo por grupo
db.collection.aggregate([{ $group : {_id: " $groupField ", avg_val:{$avg: " $valueField "}}}])
Os exemplos a seguir mostram como usar cada método com uma equipe de coleta com os seguintes documentos:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 9})
Exemplo 1: Calcule a média do campo
Podemos usar o seguinte código para calcular o valor médio do campo de ponto :
db.teams.aggregate([{ $group : {_id: null , avg_val:{$avg: " $points "}}}])
Esta consulta retorna os seguintes resultados:
{ _id: null , avg_val: 26 }
Pelos resultados, podemos ver que o valor médio no campo de pontos é 26 .
Podemos verificar manualmente se isso está correto calculando manualmente a média dos valores dos pontos:
Pontos médios: (30 + 30 + 20 + 25 + 25) / 5 = 26 .
Exemplo 2: calcule a média do campo por grupo
Podemos utilizar o seguinte código para calcular o valor médio do campo pontos , agrupados pelo campo equipe :
db.teams.aggregate([{ $group : {_id: " $team ", avg_val:{$avg: " $points "}}}])
Esta consulta retorna os seguintes resultados:
{ _id: ' Spurs ', avg_val: 23.333333333333332 } { _id: ' Mavs ', avg_val: 30 }
Dos resultados podemos ver:
- O valor médio de pontos para os Spurs é 23,33 .
- O valor médio de pontos para os Mavs é 30 .
Nota : Você pode encontrar a documentação completa da função $avg aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:
MongoDB: Como adicionar um novo campo
MongoDB: Como excluir um campo
MongoDB: Como agrupar e contar
MongoDB: Como agrupar por vários campos