在 @nestjs/mongoose 中设置 mongoose 全局选项
Posted
技术标签:
【中文标题】在 @nestjs/mongoose 中设置 mongoose 全局选项【英文标题】:Set mongoose global options in @nestjs/mongoose 【发布时间】:2021-01-01 09:10:49 【问题描述】:Mongoose 文档说我们可以设置全局选项,例如 mongoose.set('returnOriginal', false)
。
现在我在nestjs 中使用@nestjs/mongoose,但我找不到描述如何进行此全局选项设置的文档。
我确实找到了通过InjectConnection
更改设置的方法
import Module from '@nestjs/common';
import MongooseModule, InjectConnection from '@nestjs/mongoose';
import Connection from 'mongoose';
...
@Module(
imports: [
MongooseModule.forRootAsync(
inject: [ConfigService],
useFactory: (configService: ConfigService) => (
uri: configService.get('DB_URI'),
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
),
),
...
],
)
export class AppModule
constructor(@InjectConnection() private readonly connection: Connection)
connection.base.set('returnOriginal', false);
这段代码对我来说很好用。但是在@types/mongoose
中,Connection
类型中没有属性base.set
。我必须省略注入 connection
的类型定义。
我的问题是这是否是设置猫鼬全局选项的标准方法?如果没有,我该怎么做?
【问题讨论】:
是的,在 NestJs 结束时定义了一些文档问题。 【参考方案1】:由于安装了包mongoose
,我可以直接设置选项。
...
import * as mongoose from 'mongoose';
...
mongoose.set('returnOriginal', false);
@Model(...)
export class AppModule ...
【讨论】:
以上是关于在 @nestjs/mongoose 中设置 mongoose 全局选项的主要内容,如果未能解决你的问题,请参考以下文章
Nestjs - Mongoose - 虚拟字段 - 无法在 graphql 操场上查询
NestJS - 如何自我引用 mongoDB 架构 @nestjs/mongoose?