Sie müssen das Array-Feld als Teil des Abfragedokuments einschließen, um positional operator
.
Wenn Sie beispielsweise das erste Array-Element aktualisieren möchten, z. B. mit { "attributes.name": "x" }
dann könnten Sie dem Muster folgen:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Für die neueren MongoDB-Versionen 3.2.X
, könnten Sie den updateMany()
Methode, um mehrere Dokumente innerhalb der Sammlung basierend auf dem obigen Filter zu aktualisieren.