配列内のサブドキュメントを更新するには、$演算子を使用する必要があります
contacts.$
を使用する 関連するサブドキュメントを更新するようにmongoDBをポイントします。
db.users.update({_id: ObjectId("5500b5b8908520754a8c2420"),
"contacts._id": ObjectId("550199c6fe544adf50bc291e")},
{"$set":{"contacts.$":myNewDocument}})
_ id
を変更する理由がわかりません サブドキュメントの。それはお勧めできません。
サブドキュメントの特定のフィールドを変更する場合は、contacts.$.<field_name>
を使用してください サブドキュメントの特定のフィールドを更新します。