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

vai*_*eep 2 mongoose nestjs nestjs-mongoose

我有一个 Nestjs 和 MongoDB 应用程序。

auth.module.ts-

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

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;
  }

  
}
Run Code Online (Sandbox Code Playgroud)

@nestjs/mongoose我使用和创建了一个 UserSchema mongoose

根据文档,当我导入MongooseModule模块中使用的架构时,该架构只能在该特定模块中使用。

如果我想访问我的模块和服务中的多个模型怎么办?有办法吗?

如何将多个模型注入到服务中?

小智 11

这是解决方案:-

auth.module.ts

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

auth.service.ts

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