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

在 Atlas Search 索引中定义存储的源字段

在此页面上

  • 语法
  • 选项
  • 布尔值
  • 对象
  • 示例

Atlas Search 索引定义中的 storedSource 选项指定 Atlas Search 必须存储的源文档中的字段。您可以配置 storedSource 以提高某些用例中的查询性能,因为它减少了在后端数据库上进行隐式查询时间查找的需求。您可以在 Atlas Search 上存储所有数据类型的字段。

Atlas Search 不会对存储的字段进行索引,因此您必须单独对字段进行索引才能对它们运行查询。您还可以使用 returnStoredSource 选项在查询时检索存储的字段。

注意

storedSource 仅适用于运行以下版本之一的 Atlas 集群:

  • MongoDB 5.0.6 +

  • MongoDB 6.0+

  • MongoDB 7.0+

要了解有关检索存储字段的更多信息,请参阅返回存储的源字段。

storedSource选项在索引定义中具有以下语法:

{
...,
"storedSource": true | false | {
"include" | "exclude": [
"<field-name>",
...
]
}
}

storedSource选项接受 布尔值 索引定义 中的 对象 。

说明

true

指定 Atlas Search 必须存储文档中的所有字段。存储完整文档可能会严重影响索引和查询期间的性能。 要了解更多信息,请参阅存储源字段。

false

指定 Atlas Search 不得存储原始源文档。这是storedSource选项的默认值。

storedSource选项对象接受以下字段之一:

注意

该对象必须包含includeexclude

字段
类型
说明

include

字符串数组

包含字段名称或要存储的字段的点分隔路径的列表。 除了指定的字段外,Atlas Search 默认还会存储_id

exclude

字符串数组

列表,其中包含要排除在存储范围之外的字段名称或点分隔的字段路径。 如果指定,Atlas Search 会存储除此处列出的字段之外的原始文档。

sample_mflix.movies以下索引示例使用collection中的字段来演示如何使用 选项配置要存储在 Atlas SearchstoredSource 上的字段。您可以使用 Atlas 用户界面中的可视化编辑器或 JSON 编辑器来配置索引。

例子

以下示例仅将文档中的titleawards.wins字段存储在collection中。moviessample_mflix选择首选配置方法后,选择数据库下的collection集合。

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

  2. Stored Source Fields 部分中,单击 Specified

  3. Field Name列的下拉列表中选择awards.wins ,然后单击Add

  4. 单击Add Field以指定要存储的另一个字段。

  5. Field Name列的下拉列表中选择title ,然后单击Add

  6. 单击 Save Changes(连接)。

将以下示例中的 5 到 10 行添加到索引定义中,以便在 Atlas Search 中存储字段。该示例使用点表示法来指定嵌套字段。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": {
6 "include": [
7 "title",
8 "awards.wins"
9 ]
10 },
11 ...
12}

例子

以下示例将文档中除directorsimdb.rating之外的所有字段存储在集合中。 选择首选配置方法后,选择sample_mflix数据库下的movies集合。

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

  2. Stored Source Fields 部分中,单击 All Except Specified

  3. Field Name列的下拉列表中选择directors ,然后单击Add

  4. 单击Add Field以指定要排除的另一个字段。

  5. Field Name列的下拉列表中选择imdb.rating ,然后单击Add

  6. 单击 Save Changes(连接)。

将以下示例中的 5 到 10 行附加到索引定义以排除字段。该示例使用点表示法来指定嵌套字段。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": {
6 "exclude": [
7 "directors",
8 "imdb.rating"
9 ]
10 },
11 ...
12}

例子

以下示例将文档中的所有字段存储在集合中。 选择首选配置方法后,选择sample_mflix数据库下的movies集合。

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

  2. Stored Source Fields 部分中,单击 All

  3. 单击 Save Changes(连接)。

将以下示例中的第 5 行添加到索引定义中,以存储所有字段。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": true,
6 ...
7}

后退

uuid