更新整个子元素的NodeJS
问题描述:
考虑下面的文件,我想更新与_id数据集的整场:123,更新整个子元素的NodeJS
"data": {
"_id": "1234546",
"dataset": [
{
"_id": "123",
"el2": "asd",
"el3": "sd",
"el4": "gfdd",
"el5": "asdfa",
},
{
"_id": "787",
"el2": "asd",
"el3": "sd",
"el4": "gfdd",
"el5": "asdfa",
},
{
"_id": "898",
"el2": "asd",
"el3": "sd",
"el4": "gfdd",
"el5": "asdfa",
},
{
"_id": "564",
"el2": "asd",
"el3": "sd",
"el4": "gfdd",
"el5": "asdfa",
},
]
}
我想更新的所有领域数组元素通过使用_id字段。
我使用
getDB.collection ('data').findOneAndUpdate(
{ _id: new ObjectId(data.userId),
"dataset._id":new ObjectId(data.dataset),
},
{ $set: { "userAddress.$":newdataset } },
{returnOriginal:false}});
请提出了一些很好的选择进行更新。
在此先感谢.. :)
答
如果你想只更新数据库服务器上的文档,而无需读取它,你可以使用更新,而不是findOneAndUpdate。
这里有一种方法来做到这一点。
collection('data').update({
_id:<_id>,
"dataset._id":<dataset._id>
},{
$set:{
"dataset.$.el2":<el2>,
"dataset.$.el3":<el3>,
"dataset.$.el4":<el4>,
"dataset.$.el5":<el5>
}
})
谢谢!!!法鲁克 –
欢迎您:) –