Du skal inkludere array-feltet som en del af forespørgselsdokumentet for at bruge positional operator
.
For eksempel, hvis du vil opdatere det første array-element, dvs. med { "attributes.name": "x" }
så kunne du følge mønsteret:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
For de nyere MongoDB-versioner 3.2.X
, kan du bruge updateMany()
metode til at opdatere flere dokumenter i samlingen baseret på filteret ovenfor.