文档首页 → 开发应用程序 → 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 服务器手册中的地理空间查询指南。