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: як групувати за кількома полями

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *