【问题标题】:How to add extra attributes to mongoose js model while its referenced in other model (Mongoose js relationships)如何在其他模型中引用时向 mongoose js 模型添加额外属性(Mongoose js 关系)
【发布时间】:2015-08-03 05:50:24
【问题描述】:

我是 Mongoose js 的新手,一般来说也是 NODE JS 的新手。 在我的应用程序中有两个模型如下

测试用例架构

var TestCaseSchema = new Schema({
    description: String,
    expected: String,
    actual: String,
    result: String,
    createdAt: {type:Date},
    updatedAt: {type:Date, default: Date.now()},
});

和

测试计划架构如下

var TestPlanSchema = new Schema({
    name: {type: String, required: true},
    createdAt: Date,
    updatedAt: {type: Date, default: Date.now()},
    createdBy: {type: Schema.Types.ObjectId, ref:'User'},
    testCases: [{type: Schema.Types.ObjectId, ref:'TestCase'}],
    result: String,
});

如您所见,测试用例模式由测试计划模式引用

testCases: [{type: Schema.Types.ObjectId, ref:'TestCase'}]

问题: 有没有一种简单的方法可以将测试用例结果存储在测试计划中。 (我不想根据测试用例模型存储结果,因为一个测试用例可以存在于多个测试用例中,这可能导致错误数据)

任何想法/指针

在此先感谢

【问题讨论】:

    标签: mongodb express mongoose


    【解决方案1】:

    那又怎样:

    var TestPlanSchema = new Schema({
        name: {type: String, required: true},
        createdAt: Date,
        updatedAt: {type: Date, default: Date.now()},
        createdBy: {type: Schema.Types.ObjectId, ref:'User'},
        testCases: [
            {
                testCase: { type: Schema.Types.ObjectId, ref: 'TestCase'},
                result: String
            }
        ],
        result: String,
    });
    

    您现在可以将附加信息保存到每个 TestCase,作为 TestPlan 的一部分。

    【讨论】:

    • 这会破坏.populate()吗?
    猜你喜欢
    • 2018-07-15
    • 1970-01-01
    • 2019-05-23
    • 2018-07-04
    • 2021-03-18
    • 2013-04-13
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    相关资源
    最近更新 更多