No MongoDB, como você usa $ definido para atualizar um documento de valor/incorporado aninhado?

StackOverflow https://stackoverflow.com/questions/3828452

  •  26-09-2019
  •  | 
  •  

Pergunta

Em MongoDB, como você usa $set Para atualizar um valor aninhado?

Por exemplo, considere uma coleção pessoas Com o seguinte documento:

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

Como faço para atualizar o street campo incorporado no address documento de "123" para "Main Street"?

Foi útil?

Solução

Usando o notação de ponto:

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

Outras dicas

Além da resposta de Niels, verifique também o "tipo" do valor aninhado. No meu caso, era uma "string" formada a partir de JSON. Embora isso possa ser improvável, mas garanta que o valor tenha o tipo certo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top