如何使用mongoose更新,并更新嵌入文档?
问题描述:
我已经阅读过猫鼬文档,但我仍然无法弄清楚如何更新文档。如何使用mongoose更新,并更新嵌入文档?
我使用节点,表达和mongodb与猫鼬。
这是我的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") }
]
}
如何更新节点嵌入文档???
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);
});
});
它不工作。
如何更新嵌入阵列“节点”
nodes._id:4f7a92554ad893f322000009标题:这是节点1到标题:这是一个新的称号?
答
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限制)。