如何使用我要更新的项目的_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
的{{1}}之一?{/ p>
我假设我首先找到项目(足够简单),然后推送到subitems
并保存项目。所以问题是,如何在不必迭代上面的所有内容的情况下推动多个深度嵌入?我可以通过其subitems
吗?
答案 0 :(得分:2)
好的,我想我只是想通了。有趣的是,在发布到SO之后总会发生这种情况:)
这就是我所做的,让我知道是否有更好/不同的方式:
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!
});
我通过遵循此SO帖子中所选答案中的建议来解决这个问题: How to update embedded document in mongoose?