MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

La transazione 1 è stata eseguita in MongoDB

Sono riuscito a risolvere il problema.

Il problema non era con il codice seguente

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

ma era con il loop records.forEach.

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

all'interno del foreach quando viene generato un errore, non viene catturato dal blocco try catch più esterno poiché il contenuto all'interno del ciclo si trova in un contesto funzionale diverso rispetto al codice al di fuori del ciclo.

Una volta modificato il ciclo da .forEach a

for (const el of records) {}

funziona come previsto. Pubblicazione della risposta nel caso in cui qualcuno dovesse affrontare lo stesso in futuro. Grazie per il supporto ragazzi :)