En MongoDB, ¿cómo usar $ conjunto para actualizar un valor de documento anidada / incrustado?
-
26-09-2019 - |
Pregunta
En MongoDB, ¿cómo usar $set
para actualizar un valor anidado?
Por ejemplo, considere una colección los con el siguiente documento:
{
_id: ObjectId("5a7e395e20a31e44e0e7e284"),
name: "foo",
address: { street: "123", town: "bar" }
}
¿Cómo se actualiza el campo street
incrustada en el documento address
de "123"
a "Main Street"
?
Solución
Uso de la punto notación :
db.people.update({ }, { $set: { "address.street": "Main Street" } })
Otros consejos
Además de la respuesta de Niels, también hacer verificar el 'tipo' del valor anidado. En mi caso, se trataba de una "cadena" formado a partir de JSON. Aunque esto podría ser poco probable, pero no asegurar que el valor tiene el tipo correcto.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow