更新嵌套对象内的数组对象的字段

时间:2016-10-24 11:57:02

标签: arrays mongodb

我有以下数据库用户集合。

[{
name : "abc",
obj:{ id : 123 , arr[{fid:"a123",field:"0"},{fid:"b123",field:"0"}]}
},
{
name : "pqr",
obj:{ id : 456 , arr[{fid:"a456",field:"0"},{fid:"b456",field:"0"}]}

}]

我想在mongodb中将fid:b456的字段值更新为1。 如何为同一个

编写查询

3 个答案:

答案 0 :(得分:0)

使用$

db.users.update({obj.arr.fid:"b456"},{$set: {"obj.arr.$.field":"1"}})

答案 1 :(得分:0)

您可以如下所示:

db.users.update({"obj.arr.fid": b456 }, {$set: { "obj.arr.$.fid": 1 }})
  

位置$运算符充当第一个元素的占位符   与查询文档匹配。

答案 2 :(得分:-1)

你尝试过什么吗? 也许这可以帮到你:

db.users.update({name:"pqr"},{$set: {"obj.arr[1].fid":"1"}})

有关详细信息,请查看$set