【问题标题】:How to override parent schema field with discriminators using mongoosejs如何使用 mongoosejs 用鉴别器覆盖父模式字段
【发布时间】:2016-12-12 23:48:13
【问题描述】:

我有一个父架构帖子:

{
    title: {
        type: String,
        required: true
    },
    authors: {
        type: [String],
        required: true
    }
 }

我想使用 discriminator() mongoose 函数创建一个继承于此的子模式,但我想在作者字段上添加额外的验证以确保数组不为空。

我该怎么做?

另外,谁能指出我关于猫鼬鉴别器的好文档。官方文档对我的搜索没有帮助。

【问题讨论】:

    标签: node.js mongodb express mongoose schema


    【解决方案1】:

    这对你有帮助吗?

    var Parent = mongoose.model('Parent', new mongoose.Schema({
        title: {...},
        author: {...}
    }))
    
    var Child = Parent.discriminator('Child', new mongoose.Schema({
        author: {
            default: ['something']
        }
    }))
    

    请注意,您必须在子级之前包含父级(显然:o)

    【讨论】:

    • 啊,这样父属性就可以被子属性覆盖了吗?
    • 是的,您可以插入新字段或将整个字段重写为其他类型
    • 但要小心覆盖字段。如果您发现自己在区分的类中经常覆盖字段并更改类型,您可能需要重新考虑您的设计,并可能将该字段的定义推送到“子类”。
    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 2023-01-17
    • 2013-07-11
    • 2014-02-12
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    相关资源
    最近更新 更多