43 votes

Dans MongoDB, comment utiliser $set pour mettre à jour une valeur imbriquée/un document incorporé ?

Dans MongoDB, comment utiliser $set pour mettre à jour une valeur imbriquée ?

Par exemple, considérons une collection personnes avec le document suivant :

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

Comment mettre à jour le street intégré dans le address du document de "123" à "Main Street" ?

86voto

Niels van der Rest Points 11802

Utilisation de la notation par points :

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

2voto

user2725012 Points 55

En plus de la réponse de Niels, vérifiez également le "type" de la valeur imbriquée. Dans mon cas, il s'agissait d'une "chaîne" formée à partir de json. Bien que cela puisse être improbable, assurez-vous que la valeur a le bon type.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X