sql >> Base de Datos >  >> NoSQL >> MongoDB

La transacción 1 se ha comprometido en MongoDB

Pude resolver el problema.

El problema no estaba en el siguiente código

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

pero fue con el bucle records.forEach.

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

dentro del foreach cuando arroja un error, no es capturado por el bloque try catch más externo ya que el contenido dentro del bucle está en un contexto funcional diferente al código fuera del bucle.

Una vez cambié el ciclo de .forEach a

for (const el of records) {}

está funcionando como se esperaba. Publicando la respuesta en caso de que alguien se enfrente a lo mismo en el futuro. Gracias por el apoyo chicos :)