如何使用另一个类作为定义的数据类型来验证嵌套在json中的架构结构

时间:2019-10-17 11:42:03

标签: javascript schema mongoose-schema typegoose

我不知道这是否是定义定义数据类型的正确方法。

我还尝试使用@mapProp()注释。

class Temp extends Typegoose {
    @prop({ required: true, _id: false})
    unit!: string;

    @prop({ required: true, _id: false})
    value!: number;
}
class Temp2 extends Typegoose {
    @prop({ required: true,_id: false})
    unit2!: number;

    @prop({ required: true, _id: false})
    value2!: number;

    @prop({ required: true, _id: false})
    option2!: string;

}
class Temp3 extends Typegoose {
    @prop({ required: true, _id: false})
    unit3!: string;
}
export class UserModel extends Typegoose {

    @prop()
    field_type!: string;

    @prop({ _id : false, required: true})
    field_value!: Temp | Temp2 | Temp3;
}

我只想获得这三种类型的field_value参数。

如果:

"field_type" = "temp1"

然后:

"field_value" = { "unit2":32, "value2":3, "option2": "hello" }

否则:

一些错误消息

1 个答案:

答案 0 :(得分:0)

您可以执行custom validation,否则请尝试embedded discriminators-适用于您的用例