Você precisa usar o operador $ para atualizar um subdocumento em uma matriz
Usando
contacts.$
apontará o mongoDB para atualizar o subdocumento relevante. db.users.update({_id: ObjectId("5500b5b8908520754a8c2420"),
"contacts._id": ObjectId("550199c6fe544adf50bc291e")},
{"$set":{"contacts.$":myNewDocument}})
Não sei por que você está alterando o _
id
do subdocumento. Isso não é aconselhável. Se você deseja alterar um campo específico do subdocumento, use o
contacts.$.<field_name>
para atualizar o campo específico do subdocumento.