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 .
  • Среднее количество баллов для Mavs составляет 30 .

Примечание.Полную документацию по функции $avg можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как добавить новое поле
MongoDB: как удалить поле
MongoDB: как группировать и считать
MongoDB: как сгруппировать по нескольким полям

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.