如何对子文档执行操作,而不需要在Mongoose中获取父文档
How to perform operation on subdocuments without fetching a parent in Mongoose?
现在,如果我想删除子文档,我这样做:
Post.findById(post_id).exec(function(err, post) {
post.comments.remove({'_id': comment_id});
post.save(function(err) {
res.end("Hooray!");
});
});
这似乎对我来说不是最优的,因为每次我删除一个评论,整个帖子将从DB提取,它有很多东西附加到它。那么,有没有可能在不获取父文档的情况下修改子文档呢?
根据文档,如果你想更新文档而不获取它,你必须手动执行更新请求。在我的例子中,它将导致以下代码:
Post.update({'_id': post_id}, {$pull: {'comments': {'_id': comment_id}}}).exec(function(err){
console.log('Hooray!');
});
这是一个很好的可行的解决方案,但是执行直接请求意味着验证不会像版本控制那样好。
相关文章:
- 使用promise和mongoose对文档进行排序
- Mongoose查询嵌套文档的时间或多或少为某个日期
- 返回一个关联数组,而不是mongoose中的文档数组
- MongoDB/Mongoose-使用geoNear的聚合;子文档
- 使用 Mongoose 在所有现有集合中查找引用的文档
- 使用mongoose保存多个文档时的错误处理
- 检查文档是否已经存在,如果是则更新,否则创建新的Mongoose
- Mongoose子文档-找不到ID
- Mongoose创建一个文档,如果找不到指定的字段,则更新文档中的数组
- Expressjs Mongoose 查找嵌套的嵌入式文档未定义
- MongoDB with Mongoose - 仅查找某些子文档
- 为任何更新查询增加 Mongoose 文档版本的简单方法
- 如何使用 Mongoose.js 3.8.20 和 MongoDB 2.6.5 对文档进行排序
- Node.js/Mongoose - 过滤嵌套文档
- Mongoose mongodb保存子文档混乱?Mocha测试没有完成()
- 如何知道Mongoose'的追加销售创建了一个新文档
- 使用mongoose和node.js在mongoDB中插入文档时遇到问题
- Mongoose,从子文档中提取
- mongoose/mongodb查询从javascript数组中的每个发送方获取最后一个文档
- 更新嵌入的文档mongoose