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

トランザクション1はMongoDBでコミットされました

    問題を解決することができました。

    以下のコードに問題はありませんでした

      await session.commitTransaction(); (success)
      session.endSession();              (failure)
    } catch (error) {                    (entered)
      await session.abortTransaction();  (invoked)
    

    しかし、それはrecords.forEachループでした。

    records.forEach(async (el: any) => {...});
    

    エラーをスローするときのforeach内では、ループ内のコンテンツがループ外のコードとは異なる機能コンテキストにあるため、最も外側のtrycatchブロックによってキャッチされません。

    ループを.forEachから変更したら に

    for (const el of records) {}
    

    期待どおりに機能します。将来誰かが同じ問題に直面した場合に備えて、回答を投稿します。サポート担当者に感謝します:)



    1. MongoDB find()

    2. MongoDBインストールのセキュリティを向上させるための3つの簡単なステップ

    3. Docker-Composeを使用してMongoDBにデータをインポートする

    4. ユーザーロールが「管理者」と等しいかどうかをチェックするミドルウェア関数を作成する