У меня есть данные в MongDb, как показано ниже
{
"_id" : 7,
"name" : "Salena Olmos",
"scores" : [
{
"type" : "exam",
"score" : 90.37826509157176
},
{
"type" : "quiz",
"score" : 42.48780666956811
},
{
"type" : "homework",
"score" : 67.18328596625217
},
{
"type" : "homework",
"score" : 96.52986171633331
}
]
}
все, что я хочу суммировать "баллы" для "type": "homework" как
{ "_id" : 7, "score" : 163.71314768258548}
Я написал свой запрос, используя агрегат и условие фильтра, как показано ниже
db.students.aggregate([
{
"$group" :
{
"_id":"$_id",
"score":{$sum: {$filter: {
input: "$scores",
as: "x",
cond: {$eq : ["$$x.type", "homework"]}
}
}
}
}
}
])
но все это дает мне как "0" в качестве значения суммы как:
{ "_id" : 7, "score" : 0 }
Пожалуйста, помогите мне, я новичок в MongoDb и пытаюсь учиться, решая некоторые проблемы с упражнениями.
Спасибо