嗨,我想将所选图像的状态更改为“ N”
以下是我的json:
docker-registry.default.svc:5000
我尝试了以下查询:
/registry/docker/registry/v2
在media_id中,这些ID的ID数组只有状态必须更改。
我的问题是值正在更新,但数组中的第一个值并非全部
答案 0 :(得分:1)
这听起来像您想使用arrayFilters:
db.inspectionmedia.update({}, {
$set : { 'images.$[i].status' : 'N'}
}, {
multi: true,
arrayFilters: [
{'i._id': { $in:media_id}}
]
}, function(err,output){
if(err){
console.log(err)
res.json("err");
}
else{
res.json("ok");
}
});
答案 1 :(得分:1)
MongoDB引入了过滤后的位置运算符$ [],可用于更新匹配数组过滤条件的数组的多个元素。您可以在此处了解有关此运算符的更多信息:
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/
db.inspectionmedia.update(
{$set: { 'images.$[element].status' : 'N'} },
{multi:true,
arrayFilters: [
{'element._id': { $in:media_id}}
]
},
function(err,updated){
console.log(updated);
});