按 ID 查找和更新嵌套数组元素
Find and Update nested array element by ID
我有一个类似这样的用户模型
{
_id:"something",
email:"abc@gmail.com",
contacts:[
{_id:"123",status:"PENDING"},
{_id:"456",status:"PENDING"},
{_id:"789",status:"PENDING"}
]
}
并且我有一个用户联系人“123”的 ID,我想将该特定联系人的状态从“待定”更新为“成功”。我该怎么做?
最简单的方法是使用数组标识符 $,如下所示:
db.collection.updateOne({
email: "abc@gmail.com",
"contacts._id": "123"
},
{
"$set": {
"contacts.$.status": "SUCCESSFUL"
}
})
数组标识符更新与查询匹配的数组的第一个元素。
db.collection.updateOne({ _id: "something" }, { contacts: [{ _id: "123", status: "SUCCESSFUL" }] }, function (err, res) {
})
我有一个类似这样的用户模型
{
_id:"something",
email:"abc@gmail.com",
contacts:[
{_id:"123",status:"PENDING"},
{_id:"456",status:"PENDING"},
{_id:"789",status:"PENDING"}
]
}
并且我有一个用户联系人“123”的 ID,我想将该特定联系人的状态从“待定”更新为“成功”。我该怎么做?
最简单的方法是使用数组标识符 $,如下所示:
db.collection.updateOne({
email: "abc@gmail.com",
"contacts._id": "123"
},
{
"$set": {
"contacts.$.status": "SUCCESSFUL"
}
})
数组标识符更新与查询匹配的数组的第一个元素。
db.collection.updateOne({ _id: "something" }, { contacts: [{ _id: "123", status: "SUCCESSFUL" }] }, function (err, res) {
})