Musisz dołączyć pole tablicy jako część dokumentu zapytania, aby użyć positional operator
.
Na przykład, jeśli chcesz zaktualizować pierwszy element tablicy, np. za pomocą { "attributes.name": "x" }
wtedy możesz podążać za wzorem:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Dla nowszych wersji MongoDB 3.2.X
, możesz użyć updateMany()
metoda aktualizacji wielu dokumentów w kolekcji na podstawie powyższego filtra.