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

如何为 GeoJSON 对象创建索引

在此页面上

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

您可以使用 Atlas Search geo 类型为地理点和形状坐标编制索引。对于该类型,索引字段必须是 GeoJSON 对象。您可以使用 geoShapegeoWithin 操作符查询 geo 类型的索引字段。

Atlas Search 不会动态地对 geo 类型的字段进行索引。您必须 使用静态映射geo 字段进行索引。您可以使用 Atlas 用户界面中的可视化编辑器JSON 编辑器geo类型的字段进行索引。

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

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

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

  3. 单击 Customized Configuration(连接)。

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

    注意

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

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

  6. 配置 geo 类型的字段属性。要了解详情,请参阅字段属性

  7. 单击 Add(连接)。

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

{
"mappings": {
"dynamic": false,
"fields": {
"<field-name>": {
"indexShapes": true|false,
"type": "geo"
}
}
}
}

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

选项
类型
必要性
说明
默认
type
字符串
必需
标识该字段类型的人类可读标签。UI 值必须是 GeoJSON 值必须是 geo
indexShapes
布尔
Optional

指示是否对形状进行索引的标志。 默认情况下,Atlas Search:

  • 索引点,即使在嵌套时也是如此。

  • 不索引形状几何图形,例如直线和多边形。

值可以是:

  • true 索引形状和点

  • false 仅对点进行索引

false

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

以下索引定义将address.location字段索引为geo类型,以支持使用 Atlas Search geoShapegeoWithin操作符对该字段进行查询。

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

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

  3. 修改Geo Properties ,将Index Shapes的值设置为true

  4. 单击 Add(连接)。

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

1{
2 "mappings": {
3 "fields": {
4 "address": {
5 "type": "document",
6 "fields": {
7 "location": {
8 "indexShapes": true,
9 "type": "geo"
10 }
11 }
12 }
13 }
14 }
15}

提示

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

后退

嵌入式文档