MongoDB
 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, когато хвърля грешка, тя не се улавя от най-външния блок try catch, тъй като съдържанието вътре в цикъла е в различен функционален контекст от кода извън цикъла.

Веднъж промених цикъла от .forEach до

for (const el of records) {}

работи според очакванията. Публикуване на отговора в случай, че някой се сблъска със същото в бъдеще. Благодаря за подкрепата момчета :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как MongoDB индексира масиви?

  2. Свържете R към отдалечен mongoDB с rmongodb

  3. Проследяване на използването на паметта на MongoDB

  4. Свържете се с хост mongodb от докер контейнер

  5. Актуализирано поле в масив mongodb c# драйвер