【问题标题】:Using mongoose Collection ref for 2 different collections对 2 个不同的集合使用 mongoose Collection ref
【发布时间】:2015-10-23 10:50:40
【问题描述】:

所以,我正在我的网站上创建一个带有报告系统的简单发布系统,这是我的报告集合:

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
    }
});

我的问题是:报告集合应该适用于发布报告(如上面的架构),但我也想使用评论报告(使用我拥有的评论集合)。有没有办法对 2 种不同类型的集合使用 'ref'?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    不要忘记 Mongoose 和 Mongo 不会对 ref 字段强制执行任何引用完整性的概念。它们支持 .populate() 获取相关对象的查询。

    如果您想对两种类型的报告实体使用相同的架构,我只需省略 ref 并添加另一个字段以用作鉴别器。

    【讨论】:

      【解决方案2】:

      您要么需要将两个集合合并为一个,然后为报告添加类似type 的属性,要么为上面的架构引入一个新的 ref 属性,一个用于 cmets,一个用于 post。 Mongoose 没有办法从一个属性中引用 2 个集合。

      【讨论】:

        猜你喜欢
        • 2021-05-21
        • 2021-05-11
        • 2020-05-27
        • 2019-09-17
        • 1970-01-01
        • 2022-12-03
        • 2021-07-13
        • 2023-03-23
        • 2023-03-31
        相关资源
        最近更新 更多