Docs 菜单
Docs 主页
/
Atlas
/

管理索引

索引是用于提高查询性能的特殊数据结构。 索引会以易于遍历的形式存储集合数据的一部分。 索引可存储某一特定字段或多个字段的值, 并按字段的值进行排序。

要提高查询性能,请为查询中经常出现的字段以及 按字段排序的所有操作构建索引。

  • 对索引字段(Field)的查询 可以使用索引来限制必须扫描以查找匹配文档的文档数量。

  • 对索引字段进行排序操作,可返回按索引预先排序的文档。

要了解有关索引的更多信息,请参阅索引

注意

Considerations

索引对写入操作的性能有一些负面影响。 对于具有高写入读取比率的集合,索引的成本很高,因为每次插入还必须更新任何索引。有关索引注意事项的详细列表,请参阅索引的操作注意事项。

要创建、删除或隐藏索引,您必须至少拥有以下一种角色提供的访问权限:

默认情况下,您最多只能有三个并发索引构建。如要了解详情,请参阅最大并发索引构建

Indexes 标签页列出了集合的现有索引。

要访问某一集合的 Indexes 标签页,请在左侧窗格中单击该集合,然后选择Indexes 标签页。

“索引”视图
点击放大

对于每个索引, Atlas都会显示以下信息:

名称与定义

索引和键的名称。

类型

常规索引、文本索引、地理空间索引或哈希索引。

size

索引的大小。

使用

自创建索引或上次服务器重启以来,在查找中使用索引的次数。

属性

索引的任何特殊属性(如唯一性、部分性)。

1

索引标签页中,单击 Create Index 按钮。

2
  1. 指定索引键。

    • 要指定现有文档字段作为索引键,请从下拉列表中选择字段。

    • 要将任何文档中都不存在的字段指定为索引键, 请在输入框中输入字段名称。

    • 要创建复合索引,请单击索引类型下拉菜单旁边的 图标。

  2. 使用每个字段(Field)名右侧的下拉菜单指定索引类型。 你可以指定以下类型之一:

    • 升序

    • 降序

    • 2dsphere

    • Text

提示

要了解如何指定通配符索引,请参阅创建通配符索引。

3

Atlas支持以下索引选项:

选项
说明
详细信息

创建唯一索引

确保索引字段不存储重复值。

您不能对唯一索引执行滚动构建。如果使用 unique 索引选项启用以滚动方式构建索引,Atlas 将拒绝您的配置并显示错误消息。

索引名称

指定索引的名称。

创建 TTL 索引

在索引字段值经过指定秒数后自动删除文档。

部分过滤器表达式

只索引匹配指定过滤器表达式的文档。

例如:

以下部分筛选器表达式仅对含有 timezone 字段的文档构建索引:

{ "timezone": { "$exists": true } }

通配符投影

支持与索引中指定投影匹配的未知或任意字段。要使用通配符投影,请将索引字段名称设立为 $**。这会指示Atlas使用文档中的所有字段(不包括 _id)。

例如:

请考虑以下通配符投影文档:

{
"product_attributes.elements" : 1,
"product_attributes.resistance" : 1
}

如果索引字段名称是 $**,则索引只包括该投影中的字段值。

使用自定义排序规则

通过在文本框中键入或粘贴排序规则文档来为索引创建自定义排序规则。

创建稀疏索引

索引会跳过任何缺少索引字段的文档。

构建滚动进程

可以最大限度地减少索引构建对性能的影响。

滚动索引构建仅在满足特定条件时才会成功。 为确保索引构建成功,请避免使用通常会触发重启循环的以下设计模式:

您只能在 M10 个以上的集群上构建滚动索引。

4

您无法在数据浏览器中创建Atlas Search或Atlas Vector Search索引。要管理集合的Atlas Search和Atlas Vector Search索引,请参阅:

您可以创建通配符索引来支持对未知或任意字段的查询。要在Atlas中创建通配符索引,请在 Select a field name 输入框中手动键入通配符索引字段(<field>.$**)。

例子

以其中的文档包含 userMetadata 对象的集合为例。userMetadata 对象中的字段可能会因不同文档而异。

您可对 userMetadata 创建通配符索引,以考虑该对象中的所有潜在字段。在 Select a field name 输入中键入以下内容:

userMetadata.$**

为通配符索引指定类型(ascendingdescending),然后单击 Create Index(创建索引)。

Atlas将新索引的类型显示为 Wildcard

您可以向查询规划器隐藏索引,以评估在不实际删除索引的情况下删除索引的潜在影响。

1

Indexes 标签页中,将鼠标悬停在要隐藏的索引上。

2

将鼠标悬停在所选索引上方时,单击右侧出现的闭眼图标。

3

在对话框中,确认要隐藏的索引。确认选择后,Properties(属性)列下会出现一个 Hidden(隐藏)标记。

要取消隐藏索引,请重复步骤 1-3。取消隐藏索引后, Atlas将从 Properties 列中删除 Hidden 标记。

1

索引选项卡中,要删除索引,请单击该索引的垃圾桶图标。 出现确认对话框。

2

在对话框中,输入要删除索引的名称。

3

后退

AI & Data Usage

在此页面上