MongoDB 和 Nest.js:为集合定义自定义名称

Ale*_*lex 5 javascript collections mongodb nestjs

我有一个这样的架构:

    @Schema()
    export class Pais extends Document {
      @Prop(
        raw({
          codigo: { type: String, index: true, unique: true },
        }),
      )
      @Prop()
      descripcion: string;
    }
    
    export const PaisSchema = SchemaFactory.createForClass(Pais);
    
    PaisSchema.plugin(uniqueValidator, { message: `{PATH} debe ser único` });
Run Code Online (Sandbox Code Playgroud)

默认情况下,nest.js 在类名中添加一个“s”,因此集合的名称为“paiss”,但我希望名称为“paises”。

在模块上我试过这个:

    @Module({
      imports: [
        MongooseModule.forFeature([{ name: 'paises', schema: PaisSchema }]),
      ],
Run Code Online (Sandbox Code Playgroud)

但它没有用。我怎么解决这个问题?

Ale*_*lex 11

我找到了一个解决方案,只需像这样设置@Schema() 装饰器

@Schema({ collection: 'paises' })
Run Code Online (Sandbox Code Playgroud)