Docs 菜单

Docs 主页开发应用程序MongoDB Manual

startSession

在此页面上

  • 定义
  • 语法
  • 行为
  • 输出
startSession

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

提示

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

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

该命令具有以下语法:

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