简体   繁体   中英

How to validate the schema structure which is nested json using another class as defined data type

I don't know if this is right way to give define data type.

I also tried using @mapProp() annotation.

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;
}

I want to get the field_value parameters only of these three kind.

If:

"field_type" = "temp1"

Then:

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

Otherwise:

some error message

you can do custom validation , otherwise try embedded discriminators - whatever suits your use-case

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM