Bạn cần sử dụng toán tử $ để cập nhật tài liệu con trong một mảng
Sử dụng contacts.$
sẽ trỏ mongoDB để cập nhật tài liệu con có liên quan.
db.users.update({_id: ObjectId("5500b5b8908520754a8c2420"),
"contacts._id": ObjectId("550199c6fe544adf50bc291e")},
{"$set":{"contacts.$":myNewDocument}})
Tôi không chắc tại sao bạn lại thay đổi _ id
của subocument. Điều đó là không nên.
Nếu bạn muốn thay đổi một trường cụ thể của tài liệu con, hãy sử dụng contacts.$.<field_name>
để cập nhật trường cụ thể của tài liệu con.