sql >> Databasteknik >  >> NoSQL >> MongoDB

Automatisk ökningssekvens i NestJs/Mongoose

Det är möjligt att registrera en plugin för ett givet schema med forFeatureAsync() metod för MongooseModule tillsammans med en fabriksleverantör (dvs. useFactory ).

Följer exemplet från den officiella dokumentationen :

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

Men med mongoose-sequence plugin är det nödvändigt att skicka det ursprungliga Mongoose-anslutningsobjektet till plugininitieringen. Detta kan uppnås genom att injicera anslutningen till fabriksleverantören med getConnectionToken metod:

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. Uppdatera entitet i redis med spring-data-redis

  2. Mongodb - anslut via ODBC

  3. findOneAndUpdate är inte en funktion

  4. MongoDB $setUnion