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分钟。要更改该值,在启动 |