我不确定我是否了解nestjs / mongoose的配置。
我没有得到任何结果,并假设它正在查询我的管理数据库。
app.module.ts:
import { ConfigService } from './config/config.service';
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule } from './config/config.module';
import { CaseAssetsModule } from './case-assets/case-assets.module';
@Module({
imports: [
ConfigModule,
CaseAssetsModule,
MongooseModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
uri: configService.getString('mongodb.uri'),
useNewUrlParser: true,
useUnifiedTopology: true,
}),
inject: [ConfigService],
})
],
controllers: [],
providers: [],
})
export class AppModule { }
我的配置设置:
mongodb.uri = mongodb://<<myuser>>:<<mypwd>>#@<<myserver>>:27017/admin
case-assets.module.ts:
import { AssetSchema } from './asset.schema';
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { CaseAssetsController } from './case-assets.controller';
import { CaseAssetsService } from './case-assets.service';
@Module({
imports: [MongooseModule.forFeature([{ name: 'Asset', schema: AssetSchema, collection: 'assets' }])],
controllers: [CaseAssetsController],
providers: [CaseAssetsService]
})
export class CaseAssetsModule {}
我在哪里指定要连接的数据库?我指定admin是因为这是我进行身份验证的数据库。
吉娜
您已经通过指定给MongooseModule.forRootAsync()
方法的配置确定了要连接的数据库。从那里,MongooseModule.forFeature()
中使用的任何东西都使用相同的配置(即相同的数据库)