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

如何为日期字段创建索引

在此页面上

  • date 类型定义索引
  • 配置 date 字段属性
  • date 类型使用示例

您可以使用 Atlas Search date 类型来为日期值编制索引。您可以使用 Atlas Search 的 range (范围)、 near (邻近)和 equals (等于)操作符查询类型为 date 的字段。要对 date 字段运行分面查询,必须使用 dateFacet 对日期字段进行索引。

您还可以使用 date 类型创建索引:

  • 值为日期数组的字段。要了解更多信息,请参阅如何对数组元素进行索引

  • 作为 embeddedDocuments 类型索引的文档数组中的日期字段。

  • 用于排序的日期字段。Atlas Search 自动对 2023 年 7 月以后创建的索引中的所有日期字段进行索引,以对 Atlas Search 结果进行排序。对于预先存在的索引,您必须重建索引以使用索引中的日期字段进行排序。要了解更多信息,请参阅更新现有索引排序 Atlas Search 结果。

注意

要查询数组中的索引日期值,您必须使用 range 操作符。即使数组中的日期值具有 Atlas Search 索引,您也无法使用 near 操作符查询数组中存储的日期值。

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

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

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

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

  3. 单击 Customized Configuration(连接)。

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

    注意

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

  5. 单击 Data Type 下拉菜单并选择 Date。要了解有关此类型的更多信息,请参阅 字段属性

  6. 单击 Add(连接)。

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

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<field-name>": {
6 "type": "date"
7 }
8 }
9 }
10}

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

选项
类型
必要性
说明
type
字符串
必需
标识此字段类型的人类可读标签。值必须是 date

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

下面的索引定义示例将 released 字段索引编制为 Atlas Search date 类型,支持使用 near(邻近)、range(范围)和 equals(等于)等 Atlas Search 操作符针对该字段进行查询。

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

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

  3. 单击 Add(连接)。

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

1{
2 "mappings": {
3 "dynamic": false,
4 "fields": {
5 "released": {
6 "type": "date"
7 }
8 }
9 }
10}

以下示例索引定义将 released 字段索引为 datedateFacet 类型,以返回以下类型的查询结果:

  • 使用 Atlas Search 操作符(如接近等于范围) 搜索查询结果。

  • 使用 Atlas Search 组件进行查询的元数据结果

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

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

  3. 单击 Add(连接)。

  4. 重复步骤 1,并从 Data Type 下拉列表中选择 DateFacet

  5. 单击 Add(连接)。

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

1{
2 "mappings": {
3 "dynamic": false,
4 "fields": {
5 "released": [
6 {
7 "type": "date"
8 },
9 {
10 "type": "dateFacet"
11 }
12 ]
13 }
14 }
15}

提示

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

后退

布尔