No MongoDB, como você usa $ definido para atualizar um documento de valor/incorporado aninhado?
-
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"
?
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