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: { } } ] )
相关推荐
helloweilei13 小时前
python 抽象基类
python
用户83562907805113 小时前
Python 实现 PPT 转 HTML
后端·python
zone773919 小时前
004:RAG 入门-LangChain读取PDF
后端·python·面试
zone773919 小时前
005:RAG 入门-LangChain读取表格数据
后端·python·agent
树獭非懒1 天前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
唐叔在学习1 天前
就算没有服务器,我照样能够同步数据
后端·python·程序员
曲幽2 天前
FastAPI流式输出实战与避坑指南:让AI像人一样“边想边说”
python·ai·fastapi·web·stream·chat·async·generator·ollama
Flittly2 天前
【从零手写 AI Agent:learn-claude-code 项目实战笔记】(1)The Agent Loop (智能体循环)
python·agent