MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Transakcja 1 została popełniona w MongoDB

Udało mi się rozwiązać problem.

Problem nie dotyczył poniższego kodu

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

ale tak było z pętlą records.forEach.

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

wewnątrz foreach podczas zgłaszania błędu nie jest on przechwytywany przez zewnętrzny blok try catch, ponieważ zawartość wewnątrz pętli znajduje się w innym kontekście funkcjonalnym niż kod poza pętlą.

Kiedy zmieniłem pętlę z .forEach do

for (const el of records) {}

działa zgodnie z oczekiwaniami. Wysyłanie odpowiedzi na wypadek, gdyby ktoś spotkał się z tym samym w przyszłości. Dzięki za wsparcie :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Instalowanie MongoDB na CentOS 8

  2. Migracja MongoDB do DynamoDB, część 2

  3. MongoSkin Nie można odczytać właściwości „zastosuj” niezdefiniowanej

  4. MongoDB Błąd agregacji:obiekt specyfikacji etapu potoku musi zawierać dokładnie jedno pole

  5. Agregacja MongoDB, czy istnieje sposób na uzyskanie stanu wykonania z zagregowanego kursora?