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.