Docs 菜单

Docs 主页开发应用程序Python 驱动程序pymongo

地理空间索引

在此页面上

  • Overview
  • 样本数据
  • 创建地理空间索引

MongoDB 支持使用2 dsphere 索引查询地理空间坐标数据。 使用 2dsphere索引,您可以查询地理空间数据的包含、相交和邻近范围。 有关查询地理空间数据的更多信息,请参阅 地理空间查询。

要创建2dsphere索引,您必须指定仅包含GeoJSON 对象的字段。 有关此类型的更多详细信息,请参阅 MongoDB Server 手册中的GeoJSON 对象指南。

本指南中的示例使用Atlas 样本数据集中sample_mflix.theaters集合。 要了解如何创建免费的MongoDB Atlas cluster并加载样本数据集,请参阅PyMongo入门 。

以下样本文档中的 location.geo 字段来自 sample_mflix 数据库中的 theaters 集合,且为用于描述影院坐标的 GeoJSON 点对象:

{
"_id" : ObjectId("59a47286cfa9a3a73e51e75c"),
"theaterId" : 104,
"location" : {
"address" : {
"street1" : "5000 W 147th St",
"city" : "Hawthorne",
"state" : "CA",
"zipcode" : "90250"
},
"geo" : {
"type" : "Point",
"coordinates" : [
-118.36559,
33.897167
]
}
}
}

以下示例在 location.geo 字段上创建一个 2dsphere 索引:

theaters.create_index(
[( "location.geo", "2dsphere" )]
)

MongoDB还支持2d 索引,用于计算欧几里得平面上的距离,以及使用legacy coordinate pairs MongoDB2.2及更早版本中使用的“ ”语法。有关更多信息,请参阅 MongoDB Server 手册中的地理空间查询指南

← Text Indexes