所以,我在我的网站上创建了一个简单的帖子系统,里面有一个报告系统,这是我的报告集:
var ReportSchema = new mongoose.Schema({
creator: {
type: ObjectId,
ref: 'User',
required: true
},
owner: {
type: ObjectId,
ref: 'Post', //Here is my problem
required: true
},
content: {
type: String
},
created_at: {
type: Date,
default: Date.now
},
updated_at: {
type: Date,
default: Date.now
}
});
我的问题是:报告集合应该适用于帖子报告(如上图所示),但我也想使用评论报告(我收集的评论)。有没有办法使用' ref'到2种不同类型的收藏品?
答案 0 :(得分:2)
不要忘记Mongoose和Mongo不会在ref字段强制执行任何引用完整性的概念。它们用于支持获取依赖对象的.populate()查询。
如果你想对两种类型的报告实体使用相同的模式,我只需要放弃参考并添加另一个字段作为鉴别器使用。
答案 1 :(得分:1)
您需要将两个集合合并为一个,并为报告添加类似nav.opaque
属性的内容,或者为上面的Schema引入新的ref属性,以便有一个用于评论,一个用于发布。 Mongoose无法从一个属性引用2个集合。