MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Transaktion 1 wurde in MongoDB festgeschrieben

Ich konnte das Problem lösen.

Das Problem lag nicht am folgenden Code

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

aber es war mit der record.forEach-Schleife.

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

Wenn innerhalb von foreach ein Fehler ausgegeben wird, wird dieser nicht vom äußersten try-catch-Block abgefangen, da sich der Inhalt innerhalb der Schleife in einem anderen funktionalen Kontext befindet als der Code außerhalb der Schleife.

Einmal habe ich die Schleife von .forEach geändert zu

for (const el of records) {}

Es funktioniert wie erwartet. Posten Sie die Antwort, falls jemand in Zukunft mit demselben konfrontiert wird. Danke für die Unterstützung Jungs :)