参考 > 参考 > 数据库命令 > 会话命令 > commitTransaction
在本页面
commitTransaction
版本4.0中的新功能。
保存操作在多文档事务中所做的更改并结束事务。
要运行commitTransaction,该命令必须针对admin数据库运行并在.NET中运行 Session。commitTransaction 大多数用户应该直接使用driver方法或mongoShell Session.commitTransaction() helper ,而不是直接运行命令 。
admin
Session
mongo
Session.commitTransaction()
该命令具有以下语法:
{ commitTransaction: 1, txnNumber: <long>, writeConcern: <document>, autocommit: false }
提交事务时,会话将使用事务开始时指定的写关注。请参阅 Session.startTransaction()。
Session.startTransaction()
如果使用写关注进行提交,则在发生故障转移时可以回滚事务。。"w: 1"
"w: 1"
提交事务时,将保存在事务中进行的所有数据更改,并在事务外部可见。也就是说,一个事务在回滚其他事务时将不会提交其某些更改。
在提交事务之前,在事务外部看不到在事务中进行的数据更改。
但是,当一个事务写入多个分片时,并非所有外部读取操作都需要等待已提交事务的结果在所有分片上可见。例如,如果提交了一个事务,并且在分片A上可以看到写1,但是在分片B上仍然看不到写2,则外部读处于读关注状态 "local"可以读取写1的结果而看不到写2。
"local"