在使用 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 装饰器定义了多个不同类型的属性。一些属性具有额外的配置选项,如 requireddefault 等,以定义属性的行为。这些配置选项可根据你的需求进行自定义。

当你使用 @Prop 装饰器时,它会告诉 Mongoose 如何处理这些属性,包括它们的数据类型、默认值、是否必需等。

请根据你的应用需求和数据模型的结构来使用 @Prop 装饰器来定义模型的属性。这样,你就可以轻松地定义和管理 MongoDB 数据模型。

发表评论