Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / / /

如何对对象和文档中的字段进行索引

在此页面上

  • 查看 document 类型限制
  • document 类型定义索引
  • 配置 document 字段属性
  • document 类型使用示例

您可以使用 Atlas Search document类型为对象或文档中的字段编制索引。

如果启用 动态映射,Atlas Search 会自动为 document 类型的字段创建索引。您可以使用 Atlas 用户界面中的可视化编辑器JSON 编辑器为字段编制 document 类型的索引。

不能使用 Atlas Search document类型对数组内的对象或文档中的字段进行索引。 相反,请使用 Atlas Search embeddedDocuments类型对作为数组元素的对象或文档中的字段进行索引。

要定义 document 类型的索引,请在 Atlas UI 中选择您的首选配置方法,然后选择数据库和集合。

  1. 单击 Refine Your Index 配置索引。

  2. Field Mappings 部分中,单击 Add Field 打开 Add Field Mapping 窗口。

  3. 单击 Customized Configuration(连接)。

  4. Field Name 下拉菜单中选择要索引的字段。

    注意

    您无法对字段名称开头包含美元 ($) 符号的字段创建索引。

  5. 单击 Data Type(添加数据)下拉列表并选择 Document(插入文档)。

  6. 切换 Enable Dynamic Mapping 设置以启用或禁用文档中所有动态可索引字段的动态索引。要了解更多信息,请参阅 配置 document 字段属性。

  7. 单击 Add(连接)。

  8. 如果禁用了动态映射,请单击 Document 类型字段的 Add Child Field,以定义文档中字段的字段映射。

以下是 document 类型的 JSON 语法。将默认索引定义替换为以下内容。要了解有关字段的更多信息,请参阅字段属性

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<field-name>": {
6 "type": "document",
7 "dynamic": true|false,
8 "fields": {
9 "<field-name>": {
10 <field-mapping-definition>
11 }
12 }
13 }
14 }
15 }
16}

Atlas Search document 类型采用以下参数:

选项
类型
必要性
说明
默认

type

字符串

必需

标识字段类型的人类可读标签。值必须是 document

dynamic

布尔

Optional

指示 Atlas Search 是否以递归方式索引所有字段和嵌入式文档的标志。 如果设置为true ,Atlas Search 将以递归方式索引document中除某些数据类型的字段之外的所有字段和嵌入式文档。

要为文档中的所有字段(包括 Atlas Search 未动态索引的字段)编制索引,请在索引定义中定义这些字段。

如果省略或设置为false ,则必须指定要索引的各个字段。

重要提示:Atlas Search 使用检测到的数据类型的默认设置动态对 document 中的所有字段进行索引。Atlas Search 还会动态对 document 中嵌套的所有文档进行索引,除非您将 dynamic 设置为 false 以明确覆盖该行为。

false

fields

文档

Optional

将字段名称映射到字段定义的文档。 要了解详情,请参阅示例。 如果省略dynamic或设置为false ,则这是必需的。

以下索引定义示例使用 sample_mflix.movies 集合。如果您的集群上已加载示例数据,则可以使用 Atlas 用户界面中的可视化编辑器或 JSON 编辑器来配置索引。选择首选配置方法后,选择数据库和集合并优化索引以添加字段映射。

索引定义将awards字段索引为document类型。 它还将 Atlas Search 配置为自动为awards对象内的所有动态可索引字段编制索引。

  1. Add Field Mapping 窗口中,从 Field Name 下拉列表中选择 awards

  2. 单击 Data Type(添加数据)下拉列表并选择 Document(插入文档)。

  3. 切换Enable Dynamic Mapping设置以启用文档中所有动态可索引字段的动态索引(如果尚未启用)。

  4. 单击 Add(连接)。

将默认索引定义替换为以下索引定义。

1{
2 "mappings": {
3 "dynamic": false,
4 "fields": {
5 "awards": {
6 "type": "document",
7 "dynamic": true
8 }
9 }
10 }
11}

提示

另请参阅:其他索引定义示例

后退

dateFacet