È necessario includere il campo dell'array come parte del documento di query per utilizzare positional operator
.
Ad esempio, se vuoi aggiornare il primo elemento dell'array cioè con { "attributes.name": "x" }
quindi potresti seguire lo schema:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Per le versioni più recenti di MongoDB 3.2.X
, potresti utilizzare updateMany()
metodo per aggiornare più documenti all'interno della raccolta in base al filtro sopra.