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

Transaktion 1 er blevet begået i MongoDB

Jeg var i stand til at løse problemet.

Problemet var ikke med nedenstående kode

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

men det var med records.forEach loop.

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

inde i foreachen, når du kaster en fejl, fanges den ikke af den yderste try catch-blok, da indholdet inde i løkken er i en anden funktionel kontekst end koden uden for løkken.

En gang ændrede jeg løkken fra .forEach til

for (const el of records) {}

det fungerer som forventet. Sender svaret i tilfælde af, at nogen står over for det samme i fremtiden. Tak for støtten gutter :)



  1. Mongo Forespørg på et indlejret felt i en matrix.

  2. skub ny værdi til mongodb indre array - mongodb/php

  3. Hvad er den bedste strategi til at synkronisere Redis-data til MySQL?

  4. Mongoose-forespørgsel til at sortere hoveddokument og underdokument efter bestemt felt