gpt4 book ai didi

node.js - 如何使用 mongoose update 并更新嵌入文档?

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:01 26 4
gpt4 key购买 nike

我已经阅读了 mongoose 文档,但我仍然不知道如何更新文档。

我使用 Node、Express 和 mongodb 以及 mongoose。

这是我的 mongodb 中的一个集合...

{ "title" : "this is a title",
"_id" : ObjectId( "4f7a92554ad893f322000004" ),
"nodes" : [
{ "title" : "this is node 1",
"_id" : ObjectId( "4f7a92554ad893f322000009" ) },
{ "title" : "this is node 2",
"_id" : ObjectId( "4f7a92554ad893f322000008" ) },
{ "title" : "this is node 3",
"_id" : ObjectId( "4f7a92554ad893f322000007" ) },
{ "title" : "this is node 4",
"_id" : ObjectId( "4f7a92554ad893f322000006" ) },
{ "title" : "this is node 5",
"_id" : ObjectId( "4f7a92554ad893f322000005" ) }
]
}

如何更新 Node 嵌入文档???

app.put('/api/paper/:pid/:nid', function(req, res) {
var PaperModel = mongoose.model('papers', Paper);
PaperModel.update({_id: req.params.pid, 'nodes._id': req.params.nid}, {title: 'this is a new node title'}, function(error, result) {
console.dir(result);
});
});

它不起作用。

如何更新嵌入数组“Node ”

nodes._id: 4f7a92554ad893f322000009 title: 这是 Node 1 到 title : 这是一个新标题?

最佳答案

PaperModel.update(
{_id: req.params.pid, 'nodes._id': req.params.nid}
, { $set: {'nodes.$.title': 'this is a new node title'}}
, function(error, result) {
console.dir(result);
}
);

请注意,这一次只能更新一个子文档(mongodb 限制)。

关于node.js - 如何使用 mongoose update 并更新嵌入文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com