MongoDB 聚合:$listSessions

列出存储在config数据库system.sessions集合中的所有会话。MongoDB部署的所有成员都能看到这些会话。

当用户在mongod或mongos实例上创建会话时,会话最初存储在实例的内存中,也就是实例的本地记录。实例会定期将本地缓存的会话同步到config数据库中的system.sessions集合,会话对$listSessions和部署的所有成员可见,在会话记录存在于system.sessions集合之前,只能通过$listLocalSessions操作列出会话。

语法

js 复制代码
{ $listSessions: <document> }

使用

$listSessions可以接受一个文档,文档的字段如下:

字段 说明
{ } 返回当前已验证用户的所有会话。没有访问控制,则返回所有会话。
{ users: [ { user: <user>, db: <db> }, ... ] } 返回指定用户的所有会话。如果运行时有访问控制,则通过身份验证的用户必须拥有在群集上执行 listSessions 操作的权限,才能列出其他用户的会话。
{ allUsers: true } 返回所有用户的所有会话。如果运行时有访问控制,则通过身份验证的用户必须拥有在群集上执行 listSessions 操作的权限。
  • 事务中不允许使用$listSessions
  • $listSessions必须是管道中的第一个阶段。

举例

**注意:**如果使用访问控制运行,当前用户必须拥有在群集上执行$listSessions操作的权限。

列出全部会话

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

js 复制代码
use config

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

列出指定用户的全部会话

以下聚合操作将从system.sessions集合中列出指定用户myAppReader@test的所有会话:

js 复制代码
use config

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

列出当前用户的全部会话

js 复制代码
use config
db.system.sessions.aggregate( [ { $listSessions: { } } ] )
相关推荐
用户83562907805117 小时前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
c8i17 小时前
python中类的基本结构、特殊属性于MRO理解
python
麦兜*17 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
麦兜*17 小时前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
liwulin050617 小时前
【ESP32-CAM】HELLO WORLD
python
Doris_202318 小时前
Python条件判断语句 if、elif 、else
前端·后端·python
Doris_202318 小时前
Python 模式匹配match case
前端·后端·python
这里有鱼汤18 小时前
Python量化实盘踩坑指南:分钟K线没处理好,小心直接亏钱!
后端·python·程序员
大模型真好玩19 小时前
深入浅出LangGraph AI Agent智能体开发教程(五)—LangGraph 数据分析助手智能体项目实战
人工智能·python·mcp
测试老哥19 小时前
Selenium 使用指南
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例