Как правильно посчитать среднее значение по определенной группе в mongo
Необходимо посчитать среднее значение оценок для композиции
Хранятся данные в такой схеме:
var compositionsScore = new Schema({
m_id: {
type: Schema.Types.ObjectId,
ref: Compositions,
default: null
},
u_id: {
type: Schema.Types.ObjectId,
ref: Users,
default: null,
required: false,
unique: false
},
value: {
type: Number,
max: 5,
default: null,
required: false,
unique: false
}
})
Код, которым пытаюсь это посчитать:
list_scores: function(callback) {
СompositionsScoreModel.aggregate([
{
$match: {
m_id: req.params.id
},
},
{
$group: {
_id: "$m_id",
avg_score: {
$avg: "$value"
}
}
}
])
В итоге получаю пустой массив
Предполагаю, что проблема кроется в том, что в этой части:
{
$match: {
m_id: req.params.id
},
},
не получается выполнить корректное сопоставление.
Если я делаю это не правильно, буду благодарен, если подскажите, как же все-таки это сделать верно. Если мое предположение верно, то какой есть альтернативный вариант для получения нужного результата ?