Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
MongoDB vCore
Det är vanligt att man vill gruppera flera åtgärder i en enda transaktion för att antingen committa eller rulla tillbaka 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
- Ett befintligt Azure Cosmos DB för MongoDB vCore-kluster.
- Om du inte har en Azure-prenumeration skapar du ett konto kostnadsfritt.
- Om du har en befintlig Azure-prenumeration skapar du ett nytt Azure Cosmos DB för MongoDB vCore-kluster.
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.
Anteckning
Exemplen i det här avsnittet förutsätter att du har en samlingsvariabel med namnet collection
.
Använd
startSession()
för att skapa en klientsession för transaktionsåtgärden.const transactionSession = client.startSession();
Skapa en transaktion med
withTransaction()
och 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); });
Genomför transaktionen med hjälp av
commitTransaction()
.transactionSession.commitTransaction();
Använd
endSession()
för att avsluta transaktionssessionen.transactionSession.endSession();
Återställa en transaktion
Ibland kan du behöva ångra en transaktion innan den genomförs.
Med hjälp av en befintlig transaktionssession avbryter du transaktionen med
abortTransaction()
.transactionSession.abortTransaction();
Avsluta transaktionssessionen.
transactionSession.endSession();