如何在mongoose中创建一个依赖于另一个enum的enum ?



我有以下模式:

const doctorSchema = new mongoose.Schema(
{
specialty: {
type: String,
required: false
},
subspecialty: {
type: String,
required: false
}
}

医生可以有单一的专业。例如,医生可以是心脏病专家或神经科医生。

医生可以有单一的亚专科,但这取决于原来的专科。例如,神经科医生可以在神经危重症护理中有一个亚专科,但心脏病专家不能在神经危重症护理中有一个亚专科。

我正在尝试在模式中建模。我们可以为专业创建一个模式:

enum specialty {
cardiologist = 'cardiologist',
neurologist = 'neurologist'
}

有了这个,我如何为每个专业的子专业添加枚举?换句话说,我想添加一个只属于神经科医生的亚专科列表,一个只属于心脏病专家的列表,等等。

Mongoose有几个内置验证器。

  • 所有SchemaTypes都有内置的必需验证器。所需的验证器使用SchemaType的checkRequired()函数确定值是否满足所需的验证器。

  • 数字有最小和最大验证器。

  • 字符串有enum、match、minlength和maxlength验证器。

对于您的情况,您可以这样做

const doctorSchema = Schema({
_id: Schema.Types.ObjectId, 
specialty: { type: string, required: true }, 
subspecialty: { 
type: string, 
required: function() { 
if(this.specialty === "neurologist"){
return {
enum : ['neurologist-sub-list','neurologist-sub-list2'],
default: 'neurologist-sub-list',
message: '{VALUE} is not supported'
}
}
}
} 
});

你可以在if else块中完成剩下的部分如果专科医生不满意

相关内容

  • 没有找到相关文章

最新更新