系统集合
Synopsis
MongoDB 将系统信息存储在使用 <database>.system.*
命名空间的集合中,MongoDB 将该命名空间保留给内部使用。请勿创建以 system
开头的集合。
MongoDB还在本地数据库local.replset.*
命名空间中存储一些额外的实例本地元数据(专门用于复制目的),并在配置数据库中存储会话信息。
集合
系统集合包括存储在 admin
数据库中的以下集合:
admin.system.roles
admin.system.roles
集合存储管理员创建并分配给用户的自定义角色,提供对特定资源的访问权限。
admin.system.users
admin.system.users
集合存储用户的身份验证凭证以及分配给该用户的所有角色。用户可以在admin.system.roles
集合中定义授权角色。
admin.system.version
admin.system.version
集合存储元数据以支持内部操作。除非本文档或 MongoDB 支持工程师特别指示,否则请勿修改此集合。
系统集合包括存储在 config
数据库中的以下集合:
config.system.indexBuilds
indexBuilds
集合存储与进行中索引构建相关的信息。
config.system.preimages
在启用 changeStreamPreAndPostImages 选项的情况下,存储集合中已修改文档的早期版本。当前图像过期时,
config.system.preimages
集合会被自动清除。详见changeStreamOptions.preAndPostImages.expireAfterSeconds
。
特定数据库集合
系统集合还包括直接存储在每个数据库中的以下集合:
<database>.system.buckets
存储与时间序列集合相关的基础数据。
system.buckets
集合以优化的格式和模式存储数据,以有效表示持久的时间序列数据。请勿修改此集合。
重要
升级到MongoDB 8.0 时,如果您有任何不是时间序列集合的
system.buckets
集合,则可能需要在升级之前对这些集合进行drop
或rename
操作,具体取决于您的 8。0 补丁发布:- MongoDB 8.0.5 及更高版本
- 在升级之前,您无需删除不是时间序列集合的
system.buckets
集合。但是,您必须在完成升级后删除或重命名它们。 - MongoDB 8.0.4 及更早版本
- 在升级之前,必须删除或重命名不是时间序列集合的
system.buckets
集合。在升级到版本 8.0.0 - 8.0.4 之前,所有system.buckets
集合必须配置有效的时间序列选项。
要确定是否有非时间序列集合的
system.buckets
集合,请使用过滤的db.getCollectionInfos()
方法:db.getCollectionInfos( { $and: [ { name: { $regex: /^system\.buckets/ } }, { 'options.timeseries': { $exists: false } } ] } )
<database>.system.profile
<database>.system.profile
集合存储数据库分析信息。有关分析的信息,请参阅数据库分析器。
<database>.system.js
<database>.system.js
集合存储特殊 JavaScript 代码,用于服务器端 JavaScript。请参阅在服务器上存储 JavaScript 函数,获取更多信息。
<database>.system.views
<database>.system.views
集合包含数据库中每个视图的信息。从 MongoDB 5.0 开始,如果将 featureCompatibilityVersion 设置为
"5.0"
或更高版本,用户将无法再直接向<database>.system.views
集合写入数据。