Dela via


Gruppera flera åtgärder i transaktioner i Azure Cosmos DB för MongoDB vCore

GÄLLER FÖR: MongoDB vCore

Det är vanligt att du vill gruppera flera åtgärder i en enda transaktion för att antingen checka in eller återställa tillsammans. I databasprinciper implementerar transaktioner vanligtvis fyra viktiga ACID-principer . ACID står för:

  • Atomicitet: Transaktioner slutförs helt eller inte alls.
  • Konsekvens: Databaser övergår från ett konsekvent tillstånd till ett annat.
  • Isolering: Enskilda transaktioner är avskärmade från samtidiga transaktioner.
  • Hållbarhet: Slutförda transaktioner är permanenta, vilket säkerställer att data förblir konsekventa, även vid systemfel.

ACID-principerna i databashantering säkerställer att transaktioner bearbetas på ett tillförlitligt sätt. Azure Cosmos DB for MongoDB vCore implementerar dessa principer så att du kan skapa transaktioner för flera åtgärder.

Förutsättningar

Skapa en transaktion

Skapa en ny transaktion med lämpliga metoder från valfritt utvecklarspråk. Dessa metoder omfattar vanligtvis en viss omslutningsmekanism för att gruppera flera transaktioner tillsammans och en metod för att genomföra transaktionen.

Kommentar

Exemplen i det här avsnittet förutsätter att du har en samlingsvariabel med namnet collection.

  1. Använd startSession() för att skapa en klientsession för transaktionsåtgärden.

    const transactionSession = client.startSession();
    
  2. Skapa en transaktion med och withTransaction() placera alla relevanta transaktionsåtgärder i återanropet.

    await transactionSession.withTransaction(async () => {
        await collection.insertOne({ name: "Coolarn shirt", price: 38.00 }, transactionSession);
        await collection.insertOne({ name: "Coolarn shirt button", price: 1.50 }, transactionSession);
    });
    
  3. Genomför transaktionen med hjälp av commitTransaction().

    transactionSession.commitTransaction();
    
  4. Använd endSession() för att avsluta transaktionssessionen.

    transactionSession.endSession();
    

Återställa en transaktion

Ibland kan du behöva ångra en transaktion innan den checkas in.

  1. Med hjälp av en befintlig transaktionssession avbryter du transaktionen med abortTransaction().

    transactionSession.abortTransaction();
    
  2. Avsluta transaktionssessionen.

    transactionSession.endSession();
    

Gå vidare