Mongodb: як обчислити суму поля
Ви можете використовувати наступні методи для обчислення суми значень у полі в MongoDB:
Спосіб 1: обчисліть суму поля
db.collection.aggregate([{ $group : {_id: null , sum_val:{$sum: " $valueField "}}}])
Спосіб 2: обчислити суму полів за групою
db.collection.aggregate([{ $group : {_id: " $groupField ", sum_val:{$sum: " $valueField "}}}])
У наведених нижче прикладах показано, як використовувати кожен метод із групою збору з такими документами:
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})
Приклад 1: обчислити суму поля
Ми можемо використовувати наступний код, щоб обчислити суму значень у полі балів :
db.teams.aggregate([{ $group : {_id: null , sum_val:{$sum: " $points "}}}])
Цей запит повертає такі результати:
{ _id: null , sum_val: 130}
З результатів ми бачимо, що сума значень у полі точок дорівнює 130 .
Ми можемо вручну перевірити, що це правильно, вручну обчисливши суму значень балів:
Сума балів: 30 + 30 + 20 + 25 + 25 = 130 .
Приклад 2: обчислити суму полів за групою
Ми можемо використовувати наступний код, щоб обчислити суму значень у полі балів , згрупованих за полем команди :
db.teams.aggregate([{ $group : {_id: " $team ", sum_val:{$sum: " $points "}}}])
Цей запит повертає такі результати:
{ _id: ' Spurs ', sum_val: 60 } { _id: ' Mavs ', sum_val: 70 }
З результатів ми бачимо:
- Загальна кількість очок для Шпор становить 60 .
- Загальна кількість очок для Мавс становить 70 .
Примітка . Ви можете знайти повну документацію для функції $sum тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в MongoDB:
Як обчислити середнє значення в MongoDB
Як розрахувати середнє значення в MongoDB
Як розрахувати максимальне значення в MongoDB