sql >> Database >  >> NoSQL >> MongoDB

Transactie 1 is uitgevoerd in MongoDB

Ik heb het probleem kunnen oplossen.

Het probleem was niet met de onderstaande code

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

maar het was met de records.forEach-lus.

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

binnen de foreach wanneer een fout wordt gegooid, wordt deze niet opgevangen door het buitenste try-catch-blok, omdat de inhoud in de lus zich in een andere functionele context bevindt dan de code buiten de lus.

Zodra ik de lus veranderde van .forEach naar

for (const el of records) {}

het werkt zoals verwacht. Het antwoord plaatsen voor het geval iemand in de toekomst hetzelfde tegenkomt. Bedankt voor de steun jongens :)



  1. Mongoimport gebruiken om csv . te importeren

  2. BSON::ObjectId versus Mongo::ObjectID

  3. Mongodb Aggregation Group door logische of?

  4. Hoe een item te updaten vanuit een array die is genest in een array