MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

La transaction 1 a été validée dans MongoDB

J'ai pu résoudre le problème.

Le problème n'était pas avec le code ci-dessous

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

mais c'était avec la boucle records.forEach.

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

à l'intérieur du foreach lors de la génération d'une erreur, il n'est pas intercepté par le bloc try catch le plus à l'extérieur puisque le contenu à l'intérieur de la boucle est dans un contexte fonctionnel différent de celui du code à l'extérieur de la boucle.

Une fois que j'ai changé la boucle de .forEach à

for (const el of records) {}

cela fonctionne comme prévu. Publier la réponse au cas où quelqu'un ferait face à la même chose à l'avenir. Merci pour le soutien les gars :)