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

$listLocalSessions

本页内容

  • 定义
  • 限制
  • 示例
$listLocalSessions

列出由mongodmongos 实例缓存的会话。

重要

当用户在 mongodmongos 实例上创建会话时,会话记录最初仅存在于实例的内存中;即记录是本地的。周期性地,实例会将其缓存的会话同步到 config 数据库中的 system.sessions 集合,此时它们对 $listSessions 和部署的所有成员可见。直到会话记录存在于 system.sessions 集合中,您只能通过$listLocalSessions 操作来列出会话。

$listLocalSessions 操作使用 db.aggregate() 方法,而不是 db.collection.aggregate()

要运行 $listLocalSessions,它必须是管道中的第一个阶段。

该阶段具有以下语法

{ $listLocalSessions: <document> }

$listLocalSessions 阶段接受一个包含以下内容的文档

字段
描述
{ }

如果运行时使用访问控制,则返回当前认证用户的全部会话。

如果没有运行时使用访问控制,则返回全部会话。

{ 用户: [ { 用户: <user>, 数据库: <db> }, ... ] }
返回指定用户的全部会话。如果启用了访问控制,认证用户必须拥有在集群上执行 listSessions 动作的权限,才能列出其他用户的会话。
{ 所有用户: true }
返回所有用户的全部会话。如果启用了访问控制,认证用户必须拥有在集群上执行 listSessions 动作的权限。

$listLocalSessions事务 中不允许使用。

从连接的 mongod / mongos 实例的内存会话缓存中,以下聚合操作列出所有会话

注意

如果启用访问控制,当前用户必须在集群上具有 listSessions 操作的权限。

db.aggregate( [ { $listLocalSessions: { allUsers: true } } ] )

从连接的 mongod / mongos 实例的内存缓存中,以下聚合操作列出指定用户 myAppReader@test 的所有会话

注意

如果运行时启用访问控制并且当前用户不是指定用户,则当前用户必须在集群上具有 listSessions 操作的权限。

db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] )

从连接的 mongod / mongos 实例的内存缓存中,以下聚合操作列出当前用户的所有会话(如果运行时启用了访问控制)

db.aggregate( [ { $listLocalSessions: { } } ] )

如果没有启用访问控制,操作将列出所有本地会话。

返回

$limit

本页内容