You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongo Shell是否支持事务?执行事务时无限加载求助

MongoDB Shell事务问题解决

Mongo Shell是支持事务的,但你的操作遗漏了关键步骤,导致Shell无限加载。

问题原因

启动事务后执行写入操作,但没有提交事务或回滚事务,会话会一直持有事务资源,处于等待状态,所以Shell卡住不动。

修正后的完整操作流程

use test;
// 启动会话
const session = db.getMongo().startSession();
// 开启事务
session.startTransaction();
// 准备文档并执行写入(必须传入session参数)
const doc = {name: "test", value: 1};
db.myCollectionName.insertOne(doc, {session});
// 关键:提交事务保存变更,或者用abortTransaction()放弃变更
session.commitTransaction();
// 结束会话释放资源
session.endSession();

额外注意事项

  • 事务仅支持MongoDB副本集或分片集群部署。如果是单节点测试环境,启动mongod时需要添加--enableTestCommands参数才能启用事务功能。
  • 事务中的所有读写操作必须关联同一个session对象,你已经正确传入了session参数,这部分没问题。
  • 如果已经出现无限加载,可按Ctrl+C终止当前操作,然后手动调用session.endSession()释放会话资源。

内容的提问来源于stack exchange,提问作者Brijesh Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:53:11