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