如何使用 mongoosejs 用鉴别器覆盖父模式字段

Posted

技术标签:

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

我有一个父架构帖子:


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

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

我该怎么做?

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

【问题讨论】:

【参考方案1】:

这对你有帮助吗?

var Parent = mongoose.model('Parent', new mongoose.Schema(
    title: ...,
    author: ...
))

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

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

【讨论】:

啊,这样父属性就可以被子属性覆盖了吗? 是的,您可以插入新字段或将整个字段重写为其他类型 但要小心覆盖字段。如果您发现自己在区分的类中经常覆盖字段并更改类型,您可能需要重新考虑您的设计,并可能将该字段的定义推送到“子类”。

以上是关于如何使用 mongoosejs 用鉴别器覆盖父模式字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SCSS 中使用 Mixin 覆盖引用父选择器

使用Doctrine2加入表中的鉴别器

OpenApi - 有没有办法在使用 springdoc-openapi-maven-plugin 生成的合同中使用带有鉴别器部分的组合模式?

如何在meanjs中扩展userShema

Doctrine鉴别器如何知道从地图中使用哪个实体

未知的鉴别器值“SqlException”,如何忽略动态类型的鉴别器