我刚刚发现MongoDB展示了一种奇怪的行为.
显然,任何带有字符串"system"的集合名称.它中的任何地方都无法正常运作.
更糟糕的是,它甚至不会告诉你任何错误!
这更多的是好奇心问题,但是有人知道为什么会这样吗?它在某处记录了吗?
我的假设是它使用""系统.*"集合来在内部存储事物(比如索引),并且不希望你弄乱它们,但这对我来说似乎不是正确的行为.
Jus*_*ins 13
你是对的"system.*"是MongoDB在每个DB中使用的保留集合命名空间.
它用于存储索引和用户等.
SQL Server也有很多这样的表,我不相信他们警告你不要使用它们:)
但是你总是可以提出这样的功能请求:http://jira.mongodb.org/
你可以通过运行来看到它们......
> show collections
你会看到类似......
system.indexes
system.users
因此,您可以看到您的索引,例如:
> db.system.indexes.find()
来自MongoDB文档:
MongoDB中的.system.*命名空间是特殊的,包含数据库系统信息.系统集包括:
- system.namespaces列出所有名称空间.
- system.indexes列出所有索引.
- database.ns文件中存在其他命名空间/索引元数据,并且是不透明的.
- system.profile存储数据库分析信息.
- system.users列出可能访问数据库的用户.
- local.sources存储副本从属配置数据和状态.
- 有关存储对象结构的信息存储在对象本身中.见BSON.
对系统集合中对象的操作有几个限制.在system.indexes中插入会添加一个索引,但该表是不可变的(特殊的drop index命令会为您更新它).system.users是可修改的. system.profile是可以删除的.
http://docs.mongodb.org/manual/reference/system-collections/