OPTIONS
翻译或纠错本页面

索引类型

MongoDB提供了不同类型的索引。您可以对文档中任一键或内嵌文档中的键甚至是整个内嵌文档建立索引。您可以创建 单键索引 或者 复合索引。 MongoDB还支持对数组索引,即所谓 多键索引,还有 地理空间索引。点击 索引类型 来了解全部类型。

通常,用户可以创建索引来支持自己的常用且用户友好的查询。这些索引将会确保MongoDB尽可能扫描最少量的文档。

mongo 命令行里,你可以通过命令 ensureIndex() 创建索引。更多关于建立索引的细节,参见 索引教程

索引特性

MongoDB中的索引都是 B-tree 索引,支持高效的相等匹配和范围查询。索引在内部根据被索引键的值按序存储索引项。 索引的这种有序性提供了基于范围进行高效查询的能力,还可以让MongoDB根据索引中文档的顺序返回排序结果。

索引的顺序

MongoDB中的索引可能是升序 (比如 1) 或者降序 (比如 -1)。此外,MongoDB可以以任一顺序遍历索引。因此,对于单键索引而言,升序和降序是一致的。但对于复合索引并非如此:在复合索引中,排序的方向对结果有很大影响。

点击 排序顺序 了解更多关于复合索引的顺序对结果的影响。

索引交集

MongoDB可以使用索引交集来匹配含有复合条件的查询。阅读 索引交集 了解详情。

限制

索引的某些限制,比如索引键的长度,集合中索引的数量等。详见 索引限制

索引类型

单键索引

单键索引只包含集合中文档的单一指定键的数据。MongoDB不仅可以对文档中的单键建立索引,还可以对内嵌文档中的单键建立索引。

复合索引

复合索引中包含了文档中超过一个以上的键。

多键索引

多键索引包含的是一个数组,当查询中的值和该数组中的任一值相匹配时,索引匹配成功。

地理空间索引和查询

地理空间索引支持对以GeoJSON格式或者合法的坐标对形式存储的数据进行基于位置的搜索。

文本索引

文本索引支持对文档的内容进行全文搜索。

哈希索引

哈希索引使用被索引键的值的哈希值来维护索引。

←   索引概念 单键索引  →