$listSessions
¶3.6版的新功能。
列出数据库中system.sessions
集合中存储的所有会话config
。这些会话对MongoDB部署的所有成员都是可见的。
重要
当用户在mongod
或
mongos
实例上创建会话时,会话的记录最初仅存在于实例的内存中。即记录是实例的本地记录。实例将定期将其缓存的会话同步到数据库中的system.sessions
集合config
,这时,它们$listSessions
对部署以及所有部署成员都是可见的。在会话记录存在于
system.sessions
集合中之前,您只能通过$listLocalSessions
操作列出会话。
要运行$listSessions
,它必须是管道中的第一步。
该阶段具有以下语法:
该$listSessions
阶段将获取具有以下内容之一的文档:
{ } |
如果使用访问控制运行,则返回当前经过身份验证的用户的所有会话。 如果运行时没有访问控制,则返回所有会话。 |
{ users: [ { user: <user>, db: <db> }, ... ] } |
返回指定用户的所有会话。如果使用访问控制运行,则经过身份验证的用户必须listSession 对集群具有操作权限,才能列出其他用户的会话。 |
{ allUsers: true } |
返回所有用户的所有会话。如果使用访问控制运行,则经过身份验证的用户必须listSession 对集群具有操作权限
。 |
从system.sessions
集合中,以下聚合操作列出了指定用户的所有会话myAppReader@test
:
注意
如果使用访问控制运行,并且当前用户不是指定的用户,则当前用户必须具有listSession
对集群执行操作的特权。