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

$listSessions

在本页

  • 定义
  • 限制
  • 示例
$listSessions

列出存储在system.sessions 集合中的所有会话,该集合位于 config 数据库中。这些会话对所有 MongoDB 部署的成员可见。

重要

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

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

该阶段有以下语法

{ $listSessions: <document> }

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

字段
描述
{ }

如果启用访问控制,返回当前认证用户的全部会话。

如果未启用访问控制,返回全部会话。

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

$listSessions事务 中不允许使用。

system.sessions 集合中,以下聚合操作可以列出所有会话

注意

如果运行在访问控制下,当前用户必须在集群上拥有 listSessions 动作的权限。

use config
db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )

system.sessions集合中,以下聚合操作列出指定用户myAppReader@test的全部会话

注意

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

use config
db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )

system.sessions集合中,以下聚合操作列出当前用户的全部会话如果运行时启用了访问控制

use config
db.system.sessions.aggregate( [ { $listSessions: { } } ] )

如果没有启用访问控制,则操作将列出全部会话。

返回

$listSearchIndexes