参考文档:https://docs.mongodb.com/manual/indexes/
1.索引是什么
索引就是一个数据库的目录,有了索引,查找文档时就不需要扫描整个库了,在索引中找到条目后,直接跳转到目标文档位置,使得查询速度提升几个数量级。
索引又分为普通索引
、唯一索引
、地理空间索引
。
2.索引相关命令
以下命令还是以user集合为例
- 查询索引
db.user.getIndexes();
db.user.reIndex();
- 创建索引
# 单键索引,按name正序
db.user.ensureIndex({name:1})
# 复合索引,按name正序、age倒序
db.user.ensureIndex({name:1,age:-1})
# 创建索引,并设置参数
# background: 后台模式创建索引,不会阻塞数据库其它操作
# unique: 唯一索引
# dropDups: 创建索引时消除重复文档,仅保留第一个
# sparse: 索引键为空值或索引键不存在是,文档部进入该索引
db.user.ensureIndex({name:1},{"background":true,"unique":true,"dropDups":true,"sparse":true})
- 删除索引
# 删除指定索引名称的索引
db.user.dropIndex("index_name");
# 删除所有索引(不会删除_id的索引)
db.user.dropIndexes();