sql >> データベース >  >> NoSQL >> MongoDB

NestJs/Mongooseの自動インクリメントシーケンス

    forFeatureAsync()を使用して、特定のスキーマのプラグインを登録することができます。 MongooseModuleのメソッド ファクトリプロバイダー(つまり、useFactory

    公式ドキュメント の例に従います。 :

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

    ただし、mongoose-sequence プラグインネイティブのMongoose接続オブジェクトをプラグインの初期化に渡す必要があります。これは、getConnectionTokenを使用してファクトリプロバイダーに接続を挿入することで実現できます。 方法:

    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. insert()、insertOne()、insertMany()メソッドの違いは何ですか?

    2. セロリエラー:result.getがタイムアウトします

    3. MongoDBの2つのコレクションをアトミックに更新する方法はありますか?

    4. どのポリゴンにポイントが存在するかを確認する方法