聚合管道阶段:$listLocalSessions 可以列出 mongod 或 mongos 实例缓存在内存中的会话。
语法
{ $listLocalSessions: <document> }
$listLocalSessionsstage
阶段可以接受一个文档,其内容如下:
字段 | 含义 |
---|---|
{ } |
如果运行时有访问控制,则返回当前已验证用户的所有会话,否则返回所有会话。 |
{ users: [ { user: <user>, db: <db> }, ... ] } |
返回指定用户的所有会话。如果运行时有访问控制,则用户必须通过身份验证并拥有在群集上执行listSessions 操作的权限才能列出其他用户的会话。 |
{ allUsers: true } |
返回所有用户的所有会话。如果运行时有访问控制,则用户需要通过身份验证并拥有在群集上执行listSessions 操作的权限。 |
使用
- 当用户在mongod或mongos实例上创建会话时,会话的记录最初只存在于实例的内存中;即该记录是实例的本地记录。实例将定期将其缓存的会话同步到
config
数据库中的system.sessions
集合,此时$listSessions
和部署的所有成员都可以看到这些会话。在system.sessions
集合中存在会话记录之前,只能通过$listLocalSessions
操作列出会话。 -
$listLocalSessions
操作使用db.agregate()
方法,而不是db.collection.aggregate()
。 - 只能在管道的第一个阶段使用
$listLocalSessions
。 - 事务中不允许使用
$listLocalSessions
。
举例
列出所有本地会话
从已连接的 mongod
/ mongos
实例的会话内存缓存中,列出所有会话(注意权限):
db.aggregate( [ { $listLocalSessions: { allUsers: true } } ] )
列出指定用户所有本地会话
从已连接的 mongod
/ mongos
实例的内存缓存中,列出用户 myAppReader@test
的所有会话(注意权限):
db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] )
列出当前用户所有本地会话
从已连接的 mongod
/ mongos
实例的内存缓存中列出当前用户的所有会话(需要有访问权限):文章来源:https://www.toymoban.com/news/detail-799967.html
db.aggregate( [ { $listLocalSessions: { } } ] )
如果不带访问控制运行,该操作会列出所有本地会话。文章来源地址https://www.toymoban.com/news/detail-799967.html
到了这里,关于MongoDB聚合:$listLocalSessions的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!