mongoose.js:如何通过其ID更新深层文档?
题
我如何通过使用该嵌入式文档来更新一个以上以上深度的嵌入式文档 _id
我想更新的项目?
例如,如果我在模型文件中有以下内容:
var Subitems = new Schema({
"title": String,
"body": String
)}
var Items = new Schema({
"title": String,
"subitems": [Subitems]
)};
var Projects = new Schema({
"title": String,
"description": String,
"items": [Items]
});
var exports = module.exports = mongoose.model('Project', Projects);
我将如何更新 body
我的一个 subitems
我知道 _id
的 subitems
元素?
我认为我首先会找到该项目(足够容易),然后推到 subitems
并保存项目。因此,问题是,您如何将其推到一个以上的深度嵌入而又不必迭代其上方的所有内容?我可以通过它做吗 _id
?
解决方案
好的,我想我只是想出了。有趣的是,这是如何在发布后总是发生的:)
这是我所做的,让我知道是否有更好/不同的方式:
var myitem = req.project.items.id(item_id);
myitem.body = req.body.item.body;
req.project.save(function (err){
//woohoo! updated the embedded doc with the new values!
});
我通过在此帖子中遵循选定答案中的建议来弄清楚这一点:如何更新Mongoose中的嵌入式文档?
不隶属于 StackOverflow