在 mongodb nodejs 中更新文档数组字段的整个子元素
Update whole child element of an array field of an document in mongodb nodejs
考虑到以下文档,我想用 _id:123、
更新数据集的整个字段
"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}});
请推荐一些好的更新选项。
提前致谢..:)
如果您只想更新数据库服务器上的文档而不获取它,您可以使用 update 而不是 findOneAndUpdate。
这是一种方法。
collection('data').update({
_id:<_id>,
"dataset._id":<dataset._id>
},{
$set:{
"dataset.$.el2":<el2>,
"dataset.$.el3":<el3>,
"dataset.$.el4":<el4>,
"dataset.$.el5":<el5>
}
})
考虑到以下文档,我想用 _id:123、
更新数据集的整个字段 "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}});
请推荐一些好的更新选项。
提前致谢..:)
如果您只想更新数据库服务器上的文档而不获取它,您可以使用 update 而不是 findOneAndUpdate。
这是一种方法。
collection('data').update({
_id:<_id>,
"dataset._id":<dataset._id>
},{
$set:{
"dataset.$.el2":<el2>,
"dataset.$.el3":<el3>,
"dataset.$.el4":<el4>,
"dataset.$.el5":<el5>
}
})