#javascript #typescript #mongodb #mongoose #nestjs
Вопрос:
Я пытаюсь построить схему с вложенным в нее объектом. Я хочу установить значения по умолчанию и обязательные для вложенного объекта, но параметры будут игнорироваться.
задача.сущность.ts
@Schema()
export class Task {
@Prop({ required: true }) // Is working
language: Language
@Prop({ type: TaskContent, required: true })
content: TaskContent
}
class TaskContent extends Document {
@Prop({ required: true, default: "Hello World" }) // This prop is ignored.
message: string
}
export type TaskDocument = Task amp; Document
export const TaskSchema = SchemaFactory.createForClass(Task)
В моей задаче.обслуживание.ts:
const task = new this.taskSchema({
...dataFromPostRequest
})
const result = await task.save()
return result
Как я могу вставить объект и использовать @Prop из вложенного объекта? Я не хочу помещать это в один класс. Я хотел бы разделить содержимое.
Ответ №1:
Вам нужно построить схему и использовать ее в качестве типа:
@Schema()
export class Task {
@Prop({ required: true })
language: Language
@Prop({ type: TaskContentSchema, required: true }) // Here
content: TaskContent
}
class TaskContent extends Document {
@Prop({ required: true, default: "Hello World" })
message: string
}
const TaskContentSchema = SchemaFactory.createForClass(TaskContent) // Here
export type TaskDocument = Task amp; Document
export const TaskSchema = SchemaFactory.createForClass(Task)