文档菜单
文档首页
/
MongoDB 手册
/ / /

startSession

本页

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 输出
startSession

startSession 命令用于启动一系列操作的新的逻辑会话

提示

mongosh 中,此命令也可以通过 Mongo.startSession() 辅助方法运行.

辅助方法对 mongosh 用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外的返回字段的情况下,请使用数据库命令。

此命令在以下环境中的部署中可用

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

注意

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

该命令具有以下语法

db.runCommand(
{
startSession: 1
}
)

要运行 startSession,请使用 db.runCommand( { <command> } ) 方法。

db.runCommand(
{
startSession: 1
}
)

重要

featureCompatibilityVersion 必须为 3.6 或更高才能使用 startSession 命令。

提示

另请参阅

如果部署强制执行身份验证/授权,您必须进行身份验证才能运行 startSession 命令。运行 startSession 的用户拥有创建的会话,并且只有该用户可以使用该会话。

如果部署不强制执行身份验证/授权,则创建的会话没有所有者,可以被任何用户在任何连接上使用。如果用户进行身份验证并创建了一个不强制执行身份验证/授权的部署的会话,则用户拥有该会话。然而,任何连接上的任何用户都可以使用该会话。

如果部署在不停机的情况下过渡到身份验证,则没有所有者的任何会话都不能使用。

会话只能与创建会话的 MongoClient 对象一起使用。单个会话不能并发使用。使用单个会话的操作必须按顺序运行。

除了命令的状态和操作时间外,startSession 还返回以下会话特定信息

字段
类型
描述
id
文档

包含会话标识符16字节通用唯一识别码(UUID)部分的文档。

id: { id: <UUID> }

会话标识符由这个UUID与已认证用户凭据的哈希值连接而成。

timeoutMinutes
数字

会话自上次客户端使用以来保持活跃的时间(以分钟为单位),在会话过期之前。默认情况下,会话的超时时间为30分钟。要更改该值,在启动 mongod 时设置 localLogicalSessionTimeoutMinutes 参数。对于副本集和分片集群,必须在每个成员上指定相同的值。

返回

refreshSessions