MongoDB索引详解
一、索引简介
索引支持在MongoDB中高效执行查询。没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的那些文档。如果查询存在适当的索引,则MongoDB可以使用该索引来限制它必须检查的文档数。
索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储一个特定字段或一组字段的值,按该字段的值排序。索引条目的排序支持有效的相等匹配和基于范围的查询操作。另外,MongoDB可以通过使用索引中的顺序返回排序的结果。
下图说明了使用索引选择和排序匹配文档的查询:

从根本上讲,MongoDB中的索引类似于其他数据库系统中的索引。MongoDB在集合级别定义索引,并支持MongoDB集合中文档的任何字段或子字段的索引。
索引操作基本命令:
| 名称 | 描述 |
|---|---|
db.collection.createIndex() |
在集合上建立索引。 |
db.collection.dropIndex() |
删除集合上的指定索引。 |
db.collection.dropIndexes() |
删除集合上的所有索引。 |
db.collection.getIndexes() |
返回描述集合中现有索引的文档数组。 |
db.collection.reIndex() |
重建集合上所有现有的索引。 |
db.collection.totalIndexSize() |
报告集合上的索引使用的总大小。提供围绕输出totalIndexSize字段的包装collStats。 |
cursor.explain() |
报告有关游标的查询执行计划。 |
cursor.hint() |
强制MongoDB对查询使用特定的索引。 |
cursor.max() |
指定游标的排他上限。用于 |

本文详细介绍了MongoDB的索引,包括索引简介、常用索引类型如单键、复合、多键、文字、通配符、2dsphere、2d和哈希索引,以及索引的属性如TTL、唯一、部分、不区分大小写和稀疏索引。还提到了索引的构建过程。
最低0.47元/天 解锁文章
196

被折叠的 条评论
为什么被折叠?



