Synopsis
MongoDB 将系统信息存储在使用 <database>.system.* 命名空间的集合中,MongoDB 将该命名空间保留给内部使用。请勿创建以 system 开头的集合。
MongoDB还在本地数据库local.replset.*命名空间中存储一些额外的实例本地元数据(专门用于复制目的),并在配置数据库中存储会话信息。
MongoDB Atlas和其他MongoDB云服务将基本操作数据存储在使用前缀 __mdb_internal_* 的专用数据库中。请勿访问权限或修改具有此前缀的数据库。我们建议您在管理工具中忽略这些命名空间。有关这些特定于云的数据库的更多信息,请参阅内部数据库。
集合
系统集合包括存储在 admin 数据库中的以下集合:
系统集合包括存储在 config 数据库中的以下集合:
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.js<database>.system.js集合存储用于服务器端JavaScript 的特殊JavaScript代码。有关更多信息,请参阅在服务器上存储JavaScript函数。
<database>.system.views<database>.system.views集合包含数据库中每个视图的信息。从MongoDB 5.0 开始,对于设立为
"5.0"或更高版本的 featureCompatibilityVersion,用户无法再直接写入<database>.system.views集合。