將多個作業分組到 Azure Cosmos DB for MongoDB 虛擬核心中的交易
適用於: MongoDB 虛擬核心
將多個作業分組到單一交易中,以便一起認可或回復,是很常見的想法。 在資料庫原則中,交易通常會實作四個主要 ACID 原則。 ACID 代表:
- 不可部分完成:交易全部完成或完全未完成。
- 一致性:資料庫從一個一致的狀態轉換成另一個狀態。
- 隔離:個別交易與同時間的其他交易相互隔離。
- 持久性:完成的交易是永久性的,確保資料即便在系統失敗時仍保持一致。
資料庫管理中的 ACID 原則可確保交易能受到可靠的處理。 Azure Cosmos DB for MongoDB 虛擬核心會實作這些原則,讓您建立多個作業的交易。
必要條件
- 現有的 Azure Cosmos DB for MongoDB 虛擬核心叢集。
- 如果您沒有 Azure 訂用帳戶,請建立免費帳戶。
- 如果您有現有的 Azure 訂用帳戶,請建立新的 Azure Cosmos DB for MongoDB 虛擬核心叢集。
建立交易
使用您所選開發人員語言的適當方法,建立新的交易。 這些方法通常包含一些將多個交易分組在一起的包裝機制,以及認可交易的方法。
注意
本節中的範例假設您有名為 collection
的集合變數。
使用
startSession()
建立交易作業的用戶端工作階段。const transactionSession = client.startSession();
使用
withTransaction()
建立交易,並將所有相關的交易作業放在回呼內。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); });
使用
commitTransaction()
認可交易。transactionSession.commitTransaction();
使用
endSession()
結束交易工作階段。transactionSession.endSession();
復原交易
有時,您可能需要在認可交易之前復原交易。
使用現有的交易工作階段,透過
abortTransaction()
中止交易。transactionSession.abortTransaction();
結束交易工作階段。
transactionSession.endSession();