使用mongoose收集参考2个不同的集合

所以,我在我的网站上创build了一个简单的发布系统,并带有报告系统,下面是我的报告集:

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'来收集两种不同的types?

不要忘记mongoose和蒙戈不强制参考字段的参考完整性的任何概念。 他们在那里支持.populate()查询提取依赖对象。

如果你想为这两种types的报表实体使用相同的模式,我会离开参考并添加另一个字段作为鉴别器。

您可能需要将两个集合合并为一个,然后为报表添加type属性,或者为上面的Schema引入一个新的ref属性,以使其具有一个用于注释和一个用于后置的属性。 mongoose没有办法从一个属性引用2个集合。