У меня есть такая схема:
{
"_id" : ObjectId("5c35f04c4e92b8337885d9a6"),
"activity" : {
"a": 10,
"b": 20,
"c": 30,
"d": 40
}
}
Теперь я хотел бы выполнить сложение и вычитание с некоторым умножением, для этого я написал запрос, но этот запрос работает нормально только на сложении, а не навычитание.Мой запрос таков:
db.Collection.aggregate([
{ $match: { _id: ObjectId("5c35f04c4e92b8337885d9a6") } },
{ $unwind: "$_id" },
{
$project: {
"activity.score": {
$add: [
{
$multiply: [
"$activity.a",
0.5
]
},
{
$multiply: [
"$activity.b",
0.5
]
}
],
$subtract: [
{
$multiply: [
"$activity.c",
0.2
]
}
]
}
}
}
])
.then(data => {
console.log(data);
})
.catch(error => {
console.log(error);
});
при получении этой ошибки, т.е.
'Invalid $project :: caused by :: an expression specification must contain exactly one field, the name of the expression.
Если я удалил часть вычитания, то она работает нормально.
Любой может предложить мнегде я сделал ошибку.Любая помощь или предложение действительно приветствуется