Использование $ sum и $ avg с $ addFields в агрегации MongoDB - PullRequest
0 голосов
/ 02 июля 2018

Согласно документам, $avg и $sum доступны только на этапах $project и $group.

Итак, мой вопрос, когда дело доходит до $addFields, могу ли я сделать это как этап в моем конвейере агрегации?:

// stage 5
$addFields: {
  "companyTransactionAvg": {
    "$avg": {
      "$sum": "$totals.sixWeekTransactionAvg"
    }
  }
}

Это не ошибка. Я получаю числовое значение в результате. Это делает то, что я думаю, или что-то еще происходит? Я пытаюсь получить среднее значение всех значений sixWeekTransactionAvg по всем документам.

Будет ли это работать как независимая стадия в моем конвейере, или это нужно явно включить в $project или $group стадию?

1 Ответ

0 голосов
/ 02 июля 2018

Теперь я понимаю, что, хотя это можно сделать, все, что на самом деле здесь происходит, это то, что человек получает среднее значение суммы одного значения. Поскольку не выполняется группировка $, читается только один документ, а не все, и выводится среднее значение ($avg) $sum этого значения из этого одного документа. И, конечно, учитывая, что это только одно значение, $avg из $sum всегда будет таким же, как и само исходное значение.

value: 10
averageOfValue: 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...