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.