Bạn cần bao gồm trường mảng như một phần của tài liệu truy vấn để sử dụng positional operator
.
Ví dụ:nếu bạn muốn cập nhật phần tử mảng đầu tiên, tức là với { "attributes.name": "x" }
thì bạn có thể làm theo mẫu:
db.spaces.update(
{ "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
{ "$set": { "attributes.$.weight": 2 } },
{ "multi": true }
)
Đối với các phiên bản MongoDB mới hơn 3.2.X
, bạn có thể sử dụng updateMany()
phương pháp cập nhật nhiều tài liệu trong bộ sưu tập dựa trên bộ lọc ở trên.