首页/数据/NoSQL 速查/多文档事务使用方式
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

多文档事务使用方式

复制集(4.0+)与分片集群(4.2+)支持多文档事务:通过会话 startTransaction 包住多次读写,最后统一提交或回滚。

NoSQL 速查数据更新于 2026-10-12
创建会话db.getMongo().startSession()
开启session.startTransaction()
提交/回滚commitTransaction / abortTransaction
限制默认事务生命周期 60 秒(transactionLifetimeLimitSeconds)

mongosh 示例

mongosh 示例
const session = db.getMongo().startSession()
const coll = session.getDatabase("app").orders
session.startTransaction()
coll.insertOne({ _id: 3001, sku: "T-1", qty: 1 })
coll.updateOne({ _id: 3001 }, { $set: { status: "paid" } })
session.commitTransaction()
事务持有锁与资源,尽量短小;事务内不建议执行建集合、建索引等 DDL。

易错点

  • 事务对写冲突敏感,冲突时需应用侧重试整个事务逻辑(TransientTransactionError)

数据来源与参考

  • MongoDB Manual: Transactions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌