Mongodb: jak obliczyć sumę pola
Do obliczenia sumy wartości w polu w MongoDB możesz użyć następujących metod:
Metoda 1: Oblicz sumę pola
db.collection.aggregate([{ $group : {_id: null , sum_val:{$sum: " $valueField "}}}])
Metoda 2: obliczenie sumy pól według grup
db.collection.aggregate([{ $group : {_id: " $groupField ", sum_val:{$sum: " $valueField "}}}])
Poniższe przykłady pokazują, jak używać każdej metody w przypadku zespołu zbierającego z następującymi dokumentami:
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})
Przykład 1: obliczenie sumy pola
Do obliczenia sumy wartości w polu punktów możemy użyć poniższego kodu:
db.teams.aggregate([{ $group : {_id: null , sum_val:{$sum: " $points "}}}])
To zapytanie zwraca następujące wyniki:
{ _id: null , sum_val: 130}
Z wyników widzimy, że suma wartości w polu punktowym wynosi 130 .
Możemy ręcznie sprawdzić, czy jest to prawidłowe, ręcznie obliczając sumę wartości punktowych:
Suma punktów: 30 + 30 + 20 + 25 + 25 = 130 .
Przykład 2: obliczenie sumy pól według grup
Za pomocą poniższego kodu możemy obliczyć sumę wartości w polu punktów , pogrupowanych według pola zespołu :
db.teams.aggregate([{ $group : {_id: " $team ", sum_val:{$sum: " $points "}}}])
To zapytanie zwraca następujące wyniki:
{ _id: ' Spurs ', sum_val: 60 } { _id: ' Mavs ', sum_val: 70 }
Z wyników możemy zobaczyć:
- Łączna liczba punktów dla Spurs wynosi 60 .
- Łączna liczba punktów dla Mavs wynosi 70 .
Uwaga : Pełną dokumentację funkcji $sum można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:
Jak obliczyć medianę w MongoDB
Jak obliczyć średnią wartość w MongoDB
Jak obliczyć maksymalną wartość w MongoDB