按ID查找和更新嵌套数组元素



我有一个这样的用户模型

{
_id:"something",
email:"abc@gmail.com",
contacts:[
{_id:"123",status:"PENDING"},
{_id:"456",status:"PENDING"},
{_id:"789",status:"PENDING"}
]
}

我有一个用户联系人的id "123"我想从' pending '更新那个特定联系人的状态SUCCESSFUL"帮助"。我该怎么做呢?

最简单的方法是使用数组标识符$,像这样:

db.collection.updateOne({
email: "abc@gmail.com",
"contacts._id": "123"
},
{
"$set": {
"contacts.$.status": "SUCCESSFUL"
}
})

Mongo操场

数组标识符更新与查询匹配的数组的第一个元素。

db.collection.updateOne({ _id: "something" }, { contacts: [{ _id: "123", status: "SUCCESSFUL" }] }, function (err, res) {

})

最新更新