你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用对象: MongoDB vCore
通常希望将多个操作分组到单个事务中,以便一起提交或回滚。 在数据库原则中,事务通常实现四个关键 ACID 原则。 ACID 代表:
- 原子性:事务完全完成或完全不完成。
- 一致性:数据库从一种一致状态转换为另一种一致状态。
- 隔离:单个事务与其他同时进行的事务相互隔离。
- 持久性:完成的事务是永久性的,将确保数据即使在系统故障期间也保持一致。
数据库管理中的 ACID 原则可确保可靠地处理事务。 Azure Cosmos DB for MongoDB vCore 实现这些原则,使你能够为多个操作创建事务。
先决条件
- 现有的 Azure Cosmos DB for MongoDB vCore 群集。
- 如果没有 Azure 订阅,请免费创建一个帐户。
- 如果您已经拥有 Azure 订阅,请创建新的 Azure Cosmos DB for MongoDB vCore 群集。
创建交易
请使用您选择的开发语言的合适方法来创建新交易。 这些方法通常包括某种将多个事务组合在一起的包装机制,以及一种提交事务的方法。
注意
本节中的示例假定你有一个名为 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();