如何在mongo中的对象中搜索特定对象以执行更新

时间:2018-07-04 14:14:15

标签: json mongodb

我有个人的JSON,每个人都有一个孩子列表:

{
  "name": ":John",
  "age": 35,
  "kids": [
    {
      "name": "tom",
      "age": 5
    },
    {
      "name": "tina",
      "age": 3
    }
  ]
}

我要执行findAndModify,其人名是“ John”,孩子名是“ tina”,并将她的年龄更新为7岁。

这是我到目前为止的查询:

db.people.findAndModify({
    query: { "name" : "John" {--HERE--}},
    update: { $set: { "age" : 7 } }
})

要找到名为“ tina”的孩子,我需要替换--HERE--吗?

1 个答案:

答案 0 :(得分:0)

下面是完整的示例,它可以满足您的需要:

db.people.findAndModify({
    query: { "name" : "John", "kids.name" : "tina"},
    update: { $set: { "kids.$.age" : 7} }
})