【发布时间】:2016-07-10 02:26:06
【问题描述】:
所以,我正在 Node 中构建一个类似博客的小型项目,但遇到了孤立数据库引用的问题。我在相互引用的单独文件中有两个模型。
这是我的模型:
// ./models/user
Var UserSchema = mongoose.Schema({
name: String,
posts: [{type: mongoose.SchemaTypes.ObjectId, ref:'Post'}]
});
// ./models/post
var PostSchema = mongoose.Schema({
title:String,
post_body: String,
posted_by: mongoose.SchemaTypes.ObjectId
});
我的问题是,当您删除一个帖子时,您将如何删除用户帖子数组中的引用?我的想法是我可以创建一个中间件在删除路由之前运行,并在我实际删除帖子之前删除用户帖子数组中的引用。这会被认为是最好的方法吗?我在 Stack 上找到了一篇在这样的架构中使用“pre”函数的帖子:
// ./models/post
PostSchema.pre('remove', function(next){
this.model('User').remove({posts: this._id}, next);
});
这是实际的堆栈帖子:Automatically remove referencing objects on deletion in MongoDB。我无法得到这项工作。但是,我确实实现了一个自定义中间件来删除引用,但觉得这可能不是最佳实践。任何提示/建议将不胜感激。谢谢!
【问题讨论】:
标签: node.js mongodb mongodb-query