javascript - 在 NestJS 嵌套模式中忽略 @Prop 和 mongoose 选项
问题描述
我正在尝试构建一个包含嵌套对象的模式。我想在嵌套对象中设置默认值和必需值,但选项将被忽略。
任务实体.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?我不想把它放在一个班级里。我想拆分内容。
解决方案
您需要构建一个模式并将其用作类型:
@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)
推荐阅读
- python - 将类对象的返回值写入 csv 文件
- java - Android Java - 使用意图将值传递给第二个活动
- mockito - Mockito 独立运行但一起运行时失败
- github - 如何在没有合并提交或使用 CLI 的情况下使 GitHub 分叉保持最新?
- python - 流在 Flask + paramiko 中不起作用
- javascript - 无法让 vue-router 中的 cookie 工作。未定义的“这个”
- sql - 如何仅显示内部连接表列的最大值?
- laravel - 如何在axios中处理TokenMistmatchException
- php - MySQL:类似论坛的网站中的连接用户列表?
- csv - 在 Mule 中使用 Dataweave 动态合并两个 CSV 文件