代码之家  ›  专栏  ›  技术社区  ›  JohnBigs

更新嵌套对象中的键

  •  1
  • JohnBigs  · 技术社区  · 6 年前

    我有一个文档的另一个文档的值为“basicInfo”字段:

    {
      "personId": "5b45b3700fdd1a14c9f",
      "basicInfo": {
        "name": "dave",
        "age": 25,
        "personAddress": {
          "city": "los angeles",
          "street": "hollywood",
          "streetNumber": 150,
          "zipCode": 90210
        },
        "active": true
      }
    }
    

    我只想用这个更新人名:

    db.people.findAndModify({
        query: { "personId" : "5b45b3700fdd1a14c9f" },
        update: {"$set":{"basicInfo":{"name":"new name"}}}
    })
    

    这将替换基本信息…我想创建一个方法,用用户想要更改的字段发送一个JSON,并且只更改那些字段。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ashh    6 年前

    您需要使用.dot表示法更新嵌套的 name 领域

    db.people.findAndModify({
        query: { "personId": "5b45b3700fdd1a14c9f" },
        update: { "$set": {"basicInfo.name": "new name" } } }
    })