在MongoDB中,如何使用$ set更新嵌套值/嵌入文档?

时间:2010-09-30 06:57:41

标签: mongodb mongodb-query

在MongoDB中,如何使用 $set 更新嵌套值?

例如,使用以下文档考虑一个集合:

{
  _id: ObjectId("5a7e395e20a31e44e0e7e284"),
  name: "foo",
  address: { street: "123", town: "bar" }
}

如何将street文档中嵌入的address字段从"123"更新为"Main Street"

2 个答案:

答案 0 :(得分:56)

使用dot notation

db.people.update({ }, { $set: { "address.street": "Main Street" } })

答案 1 :(得分:2)

除了Niels'回答,还要验证"类型"嵌套值。就我而言,它是一个"字符串"由json组成。虽然这可能不太可能,但请确保该值具有正确的类型。