sql >> Databáze >  >> NoSQL >> MongoDB

Sekvence automatického zvýšení v NestJs/Mongoose

Je možné zaregistrovat plugin pro dané schéma pomocí forFeatureAsync() metoda MongooseModule spolu s továrním poskytovatelem (tj. useFactory ).

Podle příkladu z oficiální dokumentace :

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

Nicméně s mongoose-sequence plugin je nutné předat nativní objekt připojení Mongoose inicializaci pluginu. Toho lze dosáhnout vložením připojení do továrního poskytovatele pomocí getConnectionToken metoda:

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. Použijte Mongosniff k objasnění toho, co vaše MongoDB slyší a říká

  2. Odpočinek dat startéru pružiny, omezení @Notnull nefunguje

  3. Konzistentní hašování jako způsob škálování zápisů

  4. Vlastní deserializace