我有以下模式:
const doctorSchema = new mongoose.Schema(
{
specialty: {
type: String,
required: false
},
subspecialty: {
type: String,
required: false
}
}医生可以有一个单一的专业。例如,医生可以是心脏病专家,也可以是神经学家。
医生可以有一个子专科,但这取决于原来的专业。例如,神经科医生可以在神经危重症护理方面有一个亚专业,但心脏病专家不能在神经危重症护理方面有一个亚专业。
我试图在模式中对此进行建模。我们可以为专业创建一个模式:
enum specialty {
cardiologist = 'cardiologist',
neurologist = 'neurologist'
}在这种情况下,如何为每个专业添加一个子专业的枚举?换句话说,我想增加一个只属于神经科医生的亚科的列表,一个只属于心脏科医生的列表,等等。
发布于 2022-11-14 06:48:04
猫鼬有几个内置的验证器。
对于你的案子,你可以做这样的事情
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块中完成剩余的部分,在该块中,specailty不能满足神经学家的要求。
https://stackoverflow.com/questions/74427568
复制相似问题