NestJS 嵌套模式中忽略 @Prop 和 mongoose 选项
@Prop and mongoose options is ignored in NestJS Nested Schema
我正在尝试构建其中包含嵌套对象的架构。我想在嵌套对象中设置默认值和必需值,但选项将被忽略。
task.entity.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 & Document
export const TaskSchema = SchemaFactory.createForClass(Task)
在我的task.service.ts:
const task = new this.taskSchema({
...dataFromPostRequest
})
const result = await task.save()
return result
如何插入对象并使用嵌套对象中的@Prop?我不想将它设置为一个 class。我要拆分内容
您需要构建一个架构并将其用作类型:
@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 & Document
export const TaskSchema = SchemaFactory.createForClass(Task)
我正在尝试构建其中包含嵌套对象的架构。我想在嵌套对象中设置默认值和必需值,但选项将被忽略。
task.entity.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 & Document
export const TaskSchema = SchemaFactory.createForClass(Task)
在我的task.service.ts:
const task = new this.taskSchema({
...dataFromPostRequest
})
const result = await task.save()
return result
如何插入对象并使用嵌套对象中的@Prop?我不想将它设置为一个 class。我要拆分内容
您需要构建一个架构并将其用作类型:
@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 & Document
export const TaskSchema = SchemaFactory.createForClass(Task)