使用TypeScript类定义Mongoose模型
安装
npm install --save @typegoose/typegoose mongoose
模型定义
class Job {
@prop()
public title?: string;
@prop()
public position?: string;
}
class Car {
@prop()
public model?: string;
}
class User {
@prop()
public name?: string;
@prop({ required: true })
public age!: number; // This is a single Primitive
@prop({ type: () => [String] })
public preferences?: string[]; // This is a Primitive Array
@prop()
public mainJob?: Job; // This is a single SubDocument
@prop({ type: () => Job })
public jobs?: Job[]; // This is a SubDocument Array
@prop({ ref: () => Car })
public mainCar?: Ref<Car>; // This is a single Reference
@prop({ ref: () => Car })
public cars?: Ref<Car>[]; // This is a Reference Array
}
模型装饰器的使用
- @prop() 允许传入的值
declare function prop(options?: BasePropOptions | ArrayPropOptions | MapPropOptions | PropOptionsForNumber | PropOptionsForString | VirtualOptions, kind?: WhatIsIt): PropertyDecorator;
-
@modelOptions({options})
装饰器的使用
新增和更新数据的时候自动更新时间
@modelOptions({
schemaOptions:{
timestamps: true,
}
})