温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mongodb是否支持事务

发布时间:2026-11-07 20:45:46 来源:亿速云 阅读:90 作者:小樊 栏目:数据库

MongoDB 是支持事务的,但要看版本和使用场景。

1. 单文档事务(早期就支持)

  • 从 MongoDB 诞生起,单文档操作就是原子性的。
  • 例如:对一条文档的 update / insert / delete 本身就具备事务特性。

2. 多文档事务(ACID)

从 MongoDB 4.0 开始:

  • 支持 副本集(Replica Set) 上的多文档事务
  • 从 MongoDB 4.2 开始:
    • 支持 分片集群(Sharded Cluster) 上的多文档事务
  • 事务满足 ACID 特性:
    • Atomicity(原子性)
    • Consistency(一致性)
    • Isolation(隔离性)
    • Durability(持久性)

示例(MongoDB 4.0+):

const session = db.getMongo().startSession();
session.startTransaction();
try {
  db.orders.insertOne({ item: "A", qty: 1 }, { session });
  db.inventory.updateOne({ item: "A" }, { $inc: { qty: -1 } }, { session });
  session.commitTransaction();
} catch (e) {
  session.abortTransaction();
}

3. 使用限制和注意点

  • ✅ 需要 WiredTiger 存储引擎
  • ✅ 推荐在 副本集或分片集群 中使用
  • ⚠️ 事务有 时间限制(默认 60 秒)
  • ⚠️ 事务中不应有长时间操作
  • ⚠️ 性能成本高于单文档操作

4. 不适合事务的场景

MongoDB 官方建议:

  • 能靠 文档模型设计(嵌套文档)解决的,就不要用事务
  • 事务是“补充能力”,不是替代关系型数据库

总结

✅ MongoDB 支持事务
✅ 4.0+ 支持多文档 ACID 事务
✅ 适合副本集 / 分片集群
⚠️ 不推荐滥用事务

如果你愿意,我可以根据你的业务场景判断是否该用 MongoDB 事务。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手