En MongoDB, ¿cómo usar $ conjunto para actualizar un valor de documento anidada / incrustado?

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

  •  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"?

¿Fue útil?

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
scroll top