在@nestjs/mongoose模块中设置枚举可以通过使用Mongoose的Schema来实现。下面是设置枚举的步骤:
import { Schema, Prop, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
enum EnumType {
VALUE1 = 'value1',
VALUE2 = 'value2',
VALUE3 = 'value3',
}
@Schema()
export class MySchema extends Document {
@Prop({ type: String, enum: EnumType, default: EnumType.VALUE1 })
myField: EnumType;
}
export const MySchema = SchemaFactory.createForClass(MySchema);
在上述代码中,@Prop
装饰器用于定义字段的属性。type
属性指定字段的类型为字符串,enum
属性指定字段的枚举类型为EnumType
,default
属性指定字段的默认值为EnumType.VALUE1
。
import { Model } from 'mongoose';
import { InjectModel } from '@nestjs/mongoose';
@Injectable()
export class MyService {
constructor(@InjectModel(MySchema.name) private myModel: Model<MySchema>) {}
async create(data: MySchema): Promise<MySchema> {
const createdData = new this.myModel(data);
return createdData.save();
}
}
在上述代码中,@InjectModel
装饰器用于注入Mongoose模型。MySchema.name
用于获取Schema的名称。
这样,你就可以在@nestjs/mongoose模块中设置枚举了。枚举可以用于定义字段的取值范围,限制输入的值只能是枚举中定义的值。这在某些场景下非常有用,例如定义状态、类型等字段。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云