[英]How to update objects in document's array (mongodb)
Assume I have the following document:假设我有以下文件:
{ name: 'any-name', array: [ { _id: 'any-id', a: 'any-a-data', b: 'any-b-data', c: 'any-c-data' }, ...more objects ] }
I want to call updateOne method and update the entire object in array with _id = 'any-id' with the folowing object我想调用 updateOne 方法并使用 _id = 'any-id' 更新数组中的整个 object,并使用以下 object
{ a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' }
so the result will be:所以结果将是:
{
name: 'any-name',
array: [
{ _id: 'any-id', a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' },
...more objects
]
}
I trying something like:我尝试类似:
model.updateOne( { 'array._id': _id }, { $set: { 'array.$': data } } )
data = { a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' }数据 = { a: 'new-a-data', b: 'new-b-data', c: 'new-c-data' }
can someone help me?有人能帮我吗?
You need to parse the new data before updating the document:您需要在更新文档之前解析新数据:
var { newA, newB } = data;
Model.updateOne({ 'array._id': 'any-id' }, {
'$set': {
'array.$.a': newA,
'array.$.b': newB
}
})
.then((data) => { console.log(data); res.redirect('/') })
.catch((err) => res.status(500).send("Error: ", err));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.