Anda perlu menggunakan operator $ untuk memperbarui subdokumen dalam array
Menggunakan contacts.$
akan mengarahkan mongoDB untuk memperbarui subdokumen yang relevan.
db.users.update({_id: ObjectId("5500b5b8908520754a8c2420"),
"contacts._id": ObjectId("550199c6fe544adf50bc291e")},
{"$set":{"contacts.$":myNewDocument}})
Saya tidak yakin mengapa Anda mengubah _id
dari sub dokumen. Itu tidak dianjurkan.
Jika Anda ingin mengubah bidang tertentu dari subdokumen, gunakan contacts.$.<field_name>
untuk memperbarui bidang tertentu dari subdokumen.