对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

commitTransaction(数据库命令)

commitTransaction

将操作所做的更改保存在多文档事务中并结束该事务。

提示

在 mongosh 中,该命令也可以通过 Session.commitTransaction() 和 Session.withTransaction() 辅助方法运行。

助手方法对于 mongosh 用户来说很方便,但它们可能返回与数据库命令不同级别的信息。如果不追求方便或需要额外的返回字段,请使用数据库命令。

要运行commitTransaction,必须针对 admin数据库运行该命令并在 Session() 中运行。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas :用于在云中部署MongoDB 的完全托管服务

注意

所有MongoDB Atlas集群都支持此命令。有关Atlas支持所有命令的信息,请参阅不支持的命令。

该命令具有以下语法:

db.adminCommand(
{
commitTransaction: 1,
txnNumber: <long>,
writeConcern: <document>,
autocommit: false,
comment: <any>
}
)

提交事务时,会话使用事务开始时指定的写关注。请参阅 Session.startTransaction()。

如果您使用 "w: 1" 写关注进行提交,则可以在存在故障转移时回滚事务。

在事务提交时,事务中所做的所有数据更改都会保存,并且在事务之外可见。换言之,一个事务不会在回滚其他事务的同时提交某些更改。

在事务进行提交前,在事务中所做的数据更改在事务外不可见。

不过,当事务写入多个分片时,并非所有外部读取操作都需等待已提交事务的结果在各个分片上可见。例如,如果事务已提交并且写入 1 在分片 A 上可见,但写入 2 在分片 B 上尚不可见,则读关注 "local" 处的外部读取可以在不看到写入 2 的情况下读取写入 1 的结果。

给本页内容打分