mongodb-config集合-system.sessions
发布日期:2021-11-15 14:57:49 浏览次数:27 分类:技术文章

本文共 1048 字,大约阅读时间需要 3 分钟。

system.sessions

该system.sessions集合存储可供部署的所有成员使用的session记录。

当用户在mongod或 mongos实例上创建session时,该session记录最初仅存在于该实例的内存中。实例会定期将其缓存的session同步到system.sessions集合,当同步完成后,这些session对部署的所有成员都是可见的。

要查看system.sessions集合中的记录,需使用 $listSessions。

如果是在分片群集中,那么system.sessions集合将会被分片。

  • 当添加一个shard到分片群集时,如果要添加的shard已经包含其自己的system.sessions集合,那么MongoDB会在添加shard的过程中删除该shard自身的system.sessions集合。
  • 从版本4.4(4.2.7)开始,MongoDB自动将system.sessions集合拆分为至少1024个块,并将这些块均匀地分布在集群中的各个分片上。

$listSessions使用

3.6版中的新功能。

当用户在mongod或 mongos实例上创建session时,该session记录最初仅存在于该实例的内存中。实例会定期将其缓存的session同步到system.sessions集合,当同步完成后,这些session对部署的所有成员都是可见的。

要使用$listSessions时,它必须在pipeline中的第一阶段。

{ $listSessions: 
}
Field Description
{} 如果使用访问控制运行,则返回当前经过身份验证的用户的所有会话。如果运行时没有访问控制,则返回所有会话。
{ users: [ { user: , db: }, … ] } 返回指定用户的所有会话。如果使用访问控制运行,则已认证的用户必须listSessions对集群具有操作权限,才能列出其他用户的会话。
{ allUsers: true } 返回所有用户的所有会话。如果使用访问控制运行,则已认证的用户必须具有listSessions对集群执行操作的特权 。

使用示例:

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

警告

不要手动修改或删除system.sessions集合。

转载地址:https://blog.csdn.net/qq_39741836/article/details/115509869 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mongodb 对文档字段的重命名 $rename
下一篇:ubuntu定时执行脚本-cron

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月20日 00时37分40秒