mongoose - 尚未为模型“ModuleSchema”注册架构
问题描述
我试图弄清楚如何在 NestJs 中注册模型,因为我总是收到一条错误消息:
Use mongoose.model(name, schema) {"0":"MissingSchemaError: Schema hasn't been registered for model \"ModuleSchema\".\nUse mongoose.model(name, schema)\n at NativeConnection.Connection.model (F:\\Code\\thorberg\\divo-backend\\node_modules\\mongoose\\lib\\connection.js:1132:11)\n`
我的目标是使用 mongoose populate 方法将引用的文档加入其他集合中。
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { CreateModuleDto } from './dto/create-module.dto';
import { UpdateModuleDto } from './dto/update-module.dto';
import { Module, ModuleDocument } from './module.model';
@Injectable()
export class ModuleService {
constructor(@InjectModel(Module.name) private moduleModule: Model<ModuleDocument>) { }
findAll() {
return this.moduleModule.find().populate('modules');
}
}
我这样尝试过,确实奏效了。但不要认为这是最佳实践:
findAll() {
return this.moduleModule.find().populate('modules', ['name', 'isChecked'], this.moduleModule);
}
有没有办法在 module.module.ts 中的某处注册该模型?
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ModuleController } from './module.controller';
import { Module as M, ModuleSchema } from './module.model';
import { ModuleService } from './module.service';
@Module({
imports: [MongooseModule.forFeature([{ name: M.name, schema: ModuleSchema }])],
controllers: [ModuleController],
providers: [ModuleService],
exports: [ModuleService]
})
export class ModuleModule { }
解决方案
推荐阅读
- c++ - 使用 cudaMalloc3DArray 无法释放 GPU 内存
- php - 使用php登录时“操作超时”
- javascript - 如何在 word 插件中从 function-file.html 运行函数
- excel - 如何计算条件单元格公式,相邻单元格公式取决于第一个单元格的计算值,而不是打印值?
- android - Flutter - 让应用在设备离线时显示之前获取的数据
- c - 将数组指针传递给调用函数时如何获取索引计数?
- laravel - 迁移期间未找到基表或视图
- ruby-on-rails - Rails 5.2:如何为每个 I18n 键值创建 fields_?
- keras - AttributeError:“函数”对象没有属性“set_model”
- c - Is there a delay between a SET and a GET with the same key in Redis?