Mongo shell创建system.indexes集合报Invalid system namespace错误怎么办
报错原因说明
你操作的错误点如下:
- 所有以
system.开头的集合名是MongoDB的系统保留命名空间,仅用于数据库内部存储元数据,不允许普通用户手动创建、修改这类名称的自定义集合。 system.indexes本身就是MongoDB内置的系统集合,专门用来存储当前数据库所有集合的索引元数据,完全不需要用户手动创建,因此你调用db.createCollection("system.indexes")会直接触发命名非法的报错。
解决方案
如果你的需求是为业务集合创建索引,不需要操作system.indexes集合,直接使用索引创建命令即可,MongoDB会自动维护内部的system.indexes元数据。
示例:给users集合的mobile字段创建唯一索引的命令为:
db.users.createIndex({mobile: 1}, {unique: true})
如果你就是需要创建自定义集合,修改集合名称不要使用system.前缀即可,例如:
db.createCollection("custom_indexes")
内容的提问来源于stack exchange,提问作者R. Bogaveev
相关产品推荐
相关产品推荐

