【发布时间】:2020-08-20 05:06:15
【问题描述】:
我有一个如下所示的文档:
{
"_id": ObjectId("1111"),
"products":[
{
_id:'abc',
quantity:3},
{
_id:'xyz',
quantity:5
}
]
}
我需要将子文档 products.quantity 增加一定数量。
这是我迄今为止尝试过的
Counter.findOneAndUpdate(
{ "_id": ObjectId("1111"), "products._id": 'abc' },
[{
$addFields: {
'products.quantity': { $add: [ "$products.quantity", 7 ] }
}
}])
当我运行它时,我希望数量为 10,但我收到一个错误,提示 $add 仅支持数字或日期类型,而不支持数组
现在我该如何实现呢?
【问题讨论】:
-
是否要更新 products 数组中所有元素的数量?
-
@whoami 不,它只是数组中与过滤器匹配的一个元素,即 "products._id": 'abc' 如我的问题所示
标签: mongodb express mongoose aggregate