我的文档如下。
{
"order_id" : "1",
"payment_status" : false,
"items" : [
{
"item_id" : 1,
"payment_status" : false,
},
{
"item_id" : 2,
"payment_status" : false,
},
{
"item_id" : 3,
"payment_status" : false,
},
]
}
我需要为payment_status
和{"order_id":1}
和{"item_id" : 1}
更新字段{"item_id" : 3}
。另外,我需要批量更新相同内容以匹配条件。猫鼬有可能吗?
答案 0 :(得分:1)
您想像这样使用$arrayFilters:
db.collection.updateMany({
"order_id": "1"
},
{
"$set": {
"items.$[item].payment_status": true
}
},
{
arrayFilters: [
{
"item.item_id": {
$in: [
1,
3
]
}
}
]
})