Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

startSession

在此页面上

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

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

提示

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

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

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

注意

所有 MongoDB 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 分钟。 要更改该值,请在启动localLogicalSessionTimeoutMinutes 时设置mongod 参数。对于副本集和分片集群,您必须为每个成员指定相同的值。

后退

refreshSessions