共用方式為


將多個作業分組到 Azure Cosmos DB for MongoDB 虛擬核心中的交易

適用於: MongoDB 虛擬核心

將多個作業分組到單一交易中,以便一起認可或回復,是很常見的想法。 在資料庫原則中,交易通常會實作四個主要 ACID 原則。 ACID 代表:

  • 不可部分完成:交易全部完成或完全未完成。
  • 一致性:資料庫從一個一致的狀態轉換成另一個狀態。
  • 隔離:個別交易與同時間的其他交易相互隔離。
  • 持久性:完成的交易是永久性的,確保資料即便在系統失敗時仍保持一致。

資料庫管理中的 ACID 原則可確保交易能受到可靠的處理。 Azure Cosmos DB for MongoDB 虛擬核心會實作這些原則,讓您建立多個作業的交易。

必要條件

建立交易

使用您所選開發人員語言的適當方法,建立新的交易。 這些方法通常包含一些將多個交易分組在一起的包裝機制,以及認可交易的方法。

注意

本節中的範例假設您有名為 collection 的集合變數。

  1. 使用 startSession() 建立交易作業的用戶端工作階段。

    const transactionSession = client.startSession();
    
  2. 使用 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);
    });
    
  3. 使用 commitTransaction() 認可交易。

    transactionSession.commitTransaction();
    
  4. 使用 endSession() 結束交易工作階段。

    transactionSession.endSession();
    

復原交易

有時,您可能需要在認可交易之前復原交易。

  1. 使用現有的交易工作階段,透過 abortTransaction() 中止交易。

    transactionSession.abortTransaction();
    
  2. 結束交易工作階段。

    transactionSession.endSession();
    

後續步驟