startSession
定义
startSession
startSession
命令为一系列操作启动新的逻辑会话。提示
在
mongosh
中,该命令也可通过Mongo.startSession()
辅助方法运行。辅助方法对
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.runCommand( { startSession: 1 } )
要运行 startSession
,请使用 db.runCommand( { <command> } )
方法。
db.runCommand( { startSession: 1 } )
重要
featureCompatibilityVersion
必须是3.6 或更高版本以使用startSession
命令。
行为
如果部署强制执行身份验证/授权,则您必须通过身份验证才能运行startSession
命令。 运行startSession
的用户拥有创建的会话,并且只有该用户可以使用该会话。
如果部署不强制执行身份验证/授权,则创建的会话没有所有者,任何用户可以在任何连接上使用该会话。 如果用户对不强制执行身份验证/授权的部署进行身份验证并创建会话,则用户拥有该会话。 但是,任何连接上的任何用户都可以使用该会话。
如果部署在没有停机的情况下过渡到身份验证,则无法使用任何没有所有者的会话。
会话只能与创建会话的 MongoClient
对象一起使用。单个会话不能同时使用。使用单个会话的操作必须按顺序运行。
输出
除了命令的状态和运行时间外, startSession
还返回以下会话特定信息:
字段 | 类型 | 说明 | |
---|---|---|---|
id | 文档 | 包含会话标识符的 16 字节通用唯一标识符 (UUID) 部分的文档。
会话标识符由该 UUID 与经过身份验证的用户档案的哈希值连接组成。 | |
timeoutMinutes | 数字 | 自客户端上次使用以来会话在过期之前保持活动状态的时间量(以分钟为单位)。 默认情况下,会话的超时时间为 30 分钟。 要更改该值,请在启动 |