sql >> Database >  >> NoSQL >> MongoDB

Volgorde automatisch verhogen in NestJs/Mongoose

Het is mogelijk om een ​​plug-in voor een bepaald schema te registreren met behulp van de forFeatureAsync() methode van de MongooseModule samen met een fabrieksprovider (d.w.z. useFactory ).

Naar het voorbeeld van de officiële documentatie :

@Module({
  imports: [
    MongooseModule.forFeatureAsync([
      {
        name: Cat.name,
        useFactory: () => {
          const schema = CatsSchema;
          schema.plugin(require('mongoose-autopopulate'));
          return schema;
        },
      },
    ]),
  ],
})
export class AppModule {}

Maar met de mongoose-sequence plug-in is het nodig om het native Mongoose-verbindingsobject door te geven aan de initialisatie van de plug-in. Dit kan worden bereikt door de verbinding in de fabrieksprovider te injecteren met de getConnectionToken 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 {}



  1. Django - Hoe asynchrone takenwachtrij te gebruiken met selderij en redis

  2. Is er een manier om het datumtype op te slaan als lokale tijd in MongoDB?

  3. Mongo 3.6 aggregatie opzoeken met meerdere voorwaarden

  4. MongoDB PHP:Hoe krijg ik ObjectId met een JSON-feed? (het is leeg)