Mongo.startSession()
定义
Mongo.startSession(<options>)
为连接启动会话。
mongosh
将会话ID分配给与会话关联的命令。重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
startSession
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
会话只能与创建会话的
MongoClient
对象一起使用。单个会话不能同时使用。使用单个会话的操作必须按顺序运行。startSession()
方法可以利用会话选项获取文档。可用的选项有:字段说明因果一致性(Causal Consistency)布尔值。 启用或禁用会话的因果一致性。
Mongo.startSession()
默认启用causalConsistency
。 与snapshot
互斥。启动会话后,无法修改其
causalConsistency
设置。即使
Mongo()
连接对象禁用了因果一致性,会话仍可能启用了因果一致性,反之亦然。要设置连接对象的因果一致性,请参见Mongo.setCausalConsistency()
。事务外的文档。指定读关注。
要在启动会话后修改设置,请参阅
Session.getOptions().setReadConcern()
。readPreference文档。指定读取偏好。
readPreference 文档包含
mode
字段和可选的tags
字段:{ mode: <string>, tags: <array> } 要在启动会话后修改设置,请参阅
Session.getOptions().setReadPreference()
。retryWrites布尔值。启用或禁用遇到瞬时网络错误时重试写入的功能。
如果使用 选项启动
mongosh
--retryWrites
,则默认为retryWrites
Mongo.startSession()
启用 。启动会话后,无法修改其
retryWrites
设置。snapshot布尔值。 为MongoDB 5.0 + 部署启用会话快照读取。 与causalConsistency
互斥。writeConcern文档。指定写关注。
要在启动会话后修改设置,请参阅
Session.getOptions().setWriteConcern()
。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
示例
以下示例在与Mongo()
mongosh
的全局db
变量关联的 连接对象上启动一个具有因果一致性和可重试写入功能的会话:
db = db.getMongo().startSession({retryWrites: true, causalConsistency: true}).getDatabase(db.getName());