文档菜单

文档首页开发应用程序Python 驱动程序PyMongo

地理空间索引

本页内容

  • 概述
  • 示例数据
  • 创建地理空间索引

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

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

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

以下来自sample_mflix数据库中theaters集合的示例文档中的location.geo字段是一个 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 还支持用于在欧几里得平面上计算距离以及用于与 MongoDB 2.2 及更早版本中使用的“传统坐标对”语法工作的 2d 索引。有关更多信息,请参阅 MongoDB 服务器手册中的地理空间查询指南

← 文本索引