Mongodb: como calcular a soma de um campo
Você pode usar os seguintes métodos para calcular a soma dos valores em um campo no MongoDB:
Método 1: Calcule a soma do campo
db.collection.aggregate([{ $group : {_id: null , sum_val:{$sum: " $valueField "}}}])
Método 2: calcular a soma dos campos por grupo
db.collection.aggregate([{ $group : {_id: " $groupField ", sum_val:{$sum: " $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 soma do campo
Podemos usar o seguinte código para calcular a soma dos valores no campo de pontos :
db.teams.aggregate([{ $group : {_id: null , sum_val:{$sum: " $points "}}}])
Esta consulta retorna os seguintes resultados:
{ _id: null , sum_val: 130}
Pelos resultados, podemos ver que a soma dos valores no campo de pontos é 130 .
Podemos verificar manualmente se isso está correto calculando manualmente a soma dos valores dos pontos:
Soma dos pontos: 30 + 30 + 20 + 25 + 25 = 130 .
Exemplo 2: calcule a soma dos campos por grupo
Podemos utilizar o seguinte código para calcular a soma dos valores do campo pontos , agrupados pelo campo equipe :
db.teams.aggregate([{ $group : {_id: " $team ", sum_val:{$sum: " $points "}}}])
Esta consulta retorna os seguintes resultados:
{ _id: ' Spurs ', sum_val: 60 } { _id: ' Mavs ', sum_val: 70 }
Dos resultados podemos ver:
- O total de pontos para o Spurs é 60 .
- O total de pontos para os Mavs é 70 .
Nota : Você pode encontrar a documentação completa da função $sum aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:
Como calcular o valor mediano no MongoDB
Como calcular o valor médio no MongoDB
Como calcular o valor máximo no MongoDB