我正在使用Nest.js和MongoDB。定义了一个通用模式。
common.schema.ts:
import { AbstractDocument, ObjectIdType } from '@app/common';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { SchemaTypes } from 'mongoose';
@Schema({
timestamps: true,
versionKey: false,
})
export class Common extends AbstractDocument {
@Prop({ type: SchemaTypes.ObjectId })
studentId: ObjectIdType;
@Prop()
studentName: string;
@Prop()
studentNumber: string;
@Prop()
grade: string;
}
export const CommonSchema = SchemaFactory.createForClass(Common);
需要在以下模式中使用上述模式值:
student.schema.ts:
import { AbstractDocument, ObjectIdType } from '@app/common';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { SchemaTypes } from 'mongoose';
@Schema({
timestamps: true,
versionKey: false,
})
export class Mark extends AbstractDocument {
@Prop({ type: SchemaTypes.ObjectId })
subjectId: ObjectIdType;
@Prop()
subjectName: string;
@Prop()
totalMarks: string;
}
export const MarkSchema = SchemaFactory.createForClass(Mark);
公共模式包含在学生模块中。
student.module.ts:
import { Student, StudentSchema } from './student.schema';
import { Common, CommonSchema } from '../common.schema';
@Module({
imports: [
MongooseModule.forFeature([
{
name: Student.name,
schema: StudentSchema,
},
{
name: Common.name,
schema: CommonSchema,
},
])
],
controllers: [StudentController],
providers: [StudentService, StudentRepository],
})
export class StudentModule {}
我不知道该怎么办。我需要的最终数据插入如下:
{
_id: ObjectId('643f8a6773a92fb1552e4c89'),
studentId: ObjectId('643f8a6773a92fb1552e4c90'),
studentName: 'xxxyyy',
studentNumber: 12345,
grade: 2,
subjectId: ObjectId('643f8df1885133b26167166c'),
subjectName: 'English',
totalMarks: 55
}
如何在Nest.js中实现这一点?
需要一些有价值的帮助。
1条答案
按热度按时间a0zr77ik1#
在这种情况下,您可以使用继承。变化
到
希望这有帮助:)