Det er muligt at registrere et plugin til et givet skema ved hjælp af forFeatureAsync() metoden for MongooseModule sammen med en fabriksudbyder (dvs. useFactory ).
Efter eksemplet fra den officielle dokumentation :
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: Cat.name,
useFactory: () => {
const schema = CatsSchema;
schema.plugin(require('mongoose-autopopulate'));
return schema;
},
},
]),
],
})
export class AppModule {}
Dog med mongoose-sequence plugin er det nødvendigt at videregive det oprindelige Mongoose-forbindelsesobjekt til plugin-initialiseringen. Dette kan opnås ved at injicere forbindelsen til fabriksudbyderen med getConnectionToken metode:
import {getConnectionToken, MongooseModule} from '@nestjs/mongoose';
import * as AutoIncrementFactory from 'mongoose-sequence';
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: Cat.name,
useFactory: async (connection: Connection) => {
const schema = CatsSchema;
const AutoIncrement = AutoIncrementFactory(connection);
schema.plugin(AutoIncrement, {inc_field: 'id'});
return schema;
},
inject: [getConnectionToken('YOUR_CONNECTION_NAME')],
},
]),
],
})
export class AppModule {}