Debe incluir el campo de matriz como parte del documento de consulta para usar positional operator
.
Por ejemplo, si desea actualizar el primer elemento de la matriz, es decir, con { "attributes.name": "x" }
entonces podrías seguir el patrón:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Para las versiones más nuevas de MongoDB 3.2.X
, podría usar updateMany()
método para actualizar varios documentos dentro de la colección según el filtro anterior.