mongoose Nestjs -在服务中使用多个模型

qmelpv7a  于 2023-03-30  发布在  Go
关注(0)|答案(1)|浏览(129)

Nestjs和MongoDB应用程序
auth.module.ts -

@Module({
  imports: [
    MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
  ],
  controllers: [AuthController],
  providers: [AuthService],
})
export class AuthModule {}

auth.service.ts -

@Injectable()
export class AuthService {
  // Inject User model into AuthService
  constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {}

  getUser(username: string) {
    const user = this.userModel.find({ name: username });
    return user;
  }

  
}

我有一个使用@nestjs/mongoosemongoose创建的UserSchema。
根据文档,当我在模块中使用MongooseModule导入模式时,该模式只能在该特定模块中使用。
如果我想访问我的模块和服务中的多个模型,该怎么办?有没有办法?
如何将多个模型注入到服务中?

gjmwrych

gjmwrych1#

以下是解决办法:
auth.module.ts

@Module({
  imports: [
    MongooseModule.forFeature([
       { name: 'User', schema: UserSchema },
       { name: 'Comment', schema: CommentSchema }
    ]),
  ],
  controllers: [AuthController],
  providers: [AuthService],
})
export class AuthModule {}

auth.service.ts

export class AuthService {
  constructor(
    @InjectModel('User') private readonly userModel: Model<IUser>,
    @InjectModel('Comment') private readonly CommentModel: Model<IComment>
  ) {}
}

相关问题