SuperAPI AI 工具集

mongodb-transactions

办公与效率

查看项目

更新于 10-16 03:43

技能介绍

用途:帮助开发者在 MongoDB 中实现跨多文档、多集合的 ACID 事务,保证一组操作要么全部成功、要么全部回滚,避免部分写入导致的数据不一致。

主要能力:介绍会话(session)的创建与生命周期管理,包括 startSession、startTransaction、commitTransaction、abortTransaction、endSession;演示 withTransaction 回调式事务写法;讲解 readConcern(snapshot、local、majority、linearizable)、writeConcern(w、majority)与 readPreference 等事务选项;提供错误处理与重试逻辑,识别 TransientTransactionError 与 UnknownTransactionCommitResult 标签;给出转账、下单扣库存、账户对账等真实场景示例。

使用方式:先创建会话,在 withTransaction 回调内执行所有操作并传入 session,成功自动提交,异常自动回滚,最后调用 endSession 释放会话。

适用场景:资金转账、订单处理、库存管理、账户操作等需要多集合原子性的业务。

限制与要求:多文档事务需副本集,分片集群需 MongoDB 4.2+,独立部署仅支持单文档事务,Atlas 免费共享集群不支持事务;事务写入上限 16MB,不能创建或删除集合与索引、不能修改集合、不能写系统集合;事务有性能开销,应保持短小、按序操作以防死锁,并对瞬时错误重试。单文档操作本身原子,无需事务。