Как правильно посчитать среднее значение по определенной группе в 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
                },
            },

не получается выполнить корректное сопоставление.

Если я делаю это не правильно, буду благодарен, если подскажите, как же все-таки это сделать верно. Если мое предположение верно, то какой есть альтернативный вариант для получения нужного результата ?


Ответы (0 шт):