U moet het arrayveld opnemen als onderdeel van het querydocument om de positional operator
.
Als u bijvoorbeeld het eerste array-element wilt bijwerken, bijvoorbeeld met { "attributes.name": "x" }
dan zou je het patroon kunnen volgen:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Voor de nieuwere MongoDB-versies 3.2.X
, kunt u de updateMany()
methode om meerdere documenten binnen de collectie bij te werken op basis van het bovenstaande filter.