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

node.jsのmongodb4.0トランザクションのサポート

    コメントにも記載されているように、トランザクションのリファレンスは node-mongodb-native v3.1 API ClientSession 。これは、トランザクションがセッションに関連付けられているためです。つまり、セッションのトランザクションを開始します。いつでも、セッションに対して最大で1つのオープントランザクションを持つことができます。

    MongoDBマルチドキュメントトランザクション のドキュメント Node.jsの例も含まれています コードスニペット。例:

      session.startTransaction({
        readConcern: { level: 'snapshot' },
        writeConcern: { w: 'majority' }
      });
    
      const employeesCollection = client.db('hr').collection('employees');
      const eventsCollection = client.db('reporting').collection('events');
    
      await employeesCollection.updateOne(
        { employee: 3 },
        { $set: { status: 'Inactive' } },
        { session }
      );
      await eventsCollection.insertOne(
        {
          employee: 3,
          status: { new: 'Inactive', old: 'Active' }
        },
        { session }
      );
    
      try {
        await commitWithRetry(session);
      } catch (error) {
        await session.abortTransaction();
        throw error;
      }
    

    上記のメソッドのリファレンスは、次の場所にあります。

    MongoDB Node.jsドライバーv3.1に加えて、マルチドキュメントトランザクションがレプリカセットで利用可能であることに注意してください。 MongoDBv4.0.xでのみ。シャードクラスターのトランザクションは、バージョンv4.2以降で使用できます。




    1. マングースの複数のフィールドでソートされたリストでアイテムのランキングを取得する方法

    2. null値のMongoDBクエリ

    3. mongoDB 32ビット2GB制限、ベストプラクティス

    4. 複数の日付範囲の$groupを集計します