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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *