Es ist möglich, ein Plugin für ein bestimmtes Schema mit forFeatureAsync()
zu registrieren Methode des MongooseModule
zusammen mit einem Fabrikanbieter (d. h. useFactory
).
Folgen Sie dem Beispiel aus der offiziellen Dokumentation :
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: Cat.name,
useFactory: () => {
const schema = CatsSchema;
schema.plugin(require('mongoose-autopopulate'));
return schema;
},
},
]),
],
})
export class AppModule {}
Allerdings mit der mongoose-sequence
Plugin ist es notwendig, das native Mongoose-Verbindungsobjekt an die Plugin-Initialisierung zu übergeben. Dies kann erreicht werden, indem die Verbindung mit dem getConnectionToken
in den Factory-Provider eingefügt wird Methode:
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 {}