索引是用于提高查询性能的特殊数据结构。 索引会以易于遍历的形式存储集合数据的一部分。 索引可存储某一特定字段或多个字段的值, 并按字段的值进行排序。
要提高查询性能,请为查询中经常出现的字段以及 按字段排序的所有操作构建索引。
对索引字段(Field)的查询 可以使用索引来限制必须扫描以查找匹配文档的文档数量。
对索引字段进行排序操作,可返回按索引预先排序的文档。
要了解有关索引的更多信息,请参阅索引。
注意
Considerations
索引对写入操作的性能有一些负面影响。 对于具有高写入读取比率的集合,索引的成本很高,因为每次插入还必须更新任何索引。有关索引注意事项的详细列表,请参阅索引的操作注意事项。
所需角色
要创建、删除或隐藏索引,您必须至少拥有以下一种角色提供的访问权限:
Considerations
默认情况下,您最多只能有三个并发索引构建。如要了解详情,请参阅最大并发索引构建。
Indexes Tab
Indexes 标签页列出了集合的现有索引。
要访问某一集合的 Indexes 标签页,请在左侧窗格中单击该集合,然后选择Indexes 标签页。

对于每个索引, Atlas都会显示以下信息:
名称与定义 | 索引和键的名称。 |
类型 | 常规索引、文本索引、地理空间索引或哈希索引。 |
size | 索引的大小。 |
使用 | 自创建索引或上次服务器重启以来,在查找中使用索引的次数。 |
属性 | 索引的任何特殊属性(如唯一性、部分性)。 |
创建索引
打开索引创建对话框
在索引标签页中,单击 Create Index 按钮。
可选。 指定索引选项
Atlas支持以下索引选项:
选项 | 说明 | 详细信息 | ||||
---|---|---|---|---|---|---|
创建唯一索引 | 确保索引字段不存储重复值。 您不能对唯一索引执行滚动构建。如果使用 | |||||
索引名称 | 指定索引的名称。 | |||||
创建 TTL 索引 | 在索引字段值经过指定秒数后自动删除文档。 | |||||
部分过滤器表达式 | 只索引匹配指定过滤器表达式的文档。 例如: 以下部分筛选器表达式仅对含有
| |||||
通配符投影 | 支持与索引中指定投影匹配的未知或任意字段。要使用通配符投影,请将索引字段名称设立为 例如: 请考虑以下通配符投影文档:
如果索引字段名称是 | |||||
使用自定义排序规则 | 通过在文本框中键入或粘贴排序规则文档来为索引创建自定义排序规则。 | |||||
创建稀疏索引 | 索引会跳过任何缺少索引字段的文档。 | |||||
构建滚动进程 |
Atlas Search和Atlas Vector Search索引
您无法在数据浏览器中创建Atlas Search或Atlas Vector Search索引。要管理集合的Atlas Search和Atlas Vector Search索引,请参阅:
创建通配符索引
您可以创建通配符索引来支持对未知或任意字段的查询。要在Atlas中创建通配符索引,请在 Select a field name 输入框中手动键入通配符索引字段(<field>.$**
)。
例子
以其中的文档包含 userMetadata
对象的集合为例。userMetadata
对象中的字段可能会因不同文档而异。
您可对 userMetadata
创建通配符索引,以考虑该对象中的所有潜在字段。在 Select a field name 输入中键入以下内容:
userMetadata.$**
为通配符索引指定类型(ascending
或 descending
),然后单击 Create Index(创建索引)。
Atlas将新索引的类型显示为 Wildcard。
隐藏或取消隐藏索引
您可以向查询规划器隐藏索引,以评估在不实际删除索引的情况下删除索引的潜在影响。