在使用 Mongoose 来定义 MongoDB 数据模型时,你可以使用 @Prop
装饰器来定义模型的属性,以指定属性的名称、数据类型和其他配置。这是在 NestJS 应用中使用 @nestjs/mongoose
时的一种常见方法。
以下是如何使用 @Prop
装饰器的示例:
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
@Schema()
export class Cat extends Document {
@Prop() // 无参数的 @Prop 装饰器默认将字段定义为字符串
name: string;
@Prop({ required: true }) // 使用配置项定义属性
age: number;
@Prop([String]) // 使用数组定义属性,此属性将包含字符串数组
hobbies: string[];
@Prop({ type: String, default: 'unknown' }) // 定义属性的类型和默认值
breed: string;
@Prop({ type: Date, default: Date.now }) // 使用默认值为日期类型的属性
createdAt: Date;
}
export const CatSchema = SchemaFactory.createForClass(Cat);
在上述示例中,我们使用 @Prop
装饰器定义了多个不同类型的属性。一些属性具有额外的配置选项,如 required
、default
等,以定义属性的行为。这些配置选项可根据你的需求进行自定义。
当你使用 @Prop
装饰器时,它会告诉 Mongoose 如何处理这些属性,包括它们的数据类型、默认值、是否必需等。
请根据你的应用需求和数据模型的结构来使用 @Prop
装饰器来定义模型的属性。这样,你就可以轻松地定义和管理 MongoDB 数据模型。