地理空间索引
概述
MongoDB支持使用2dsphere索引对地理坐标数据进行查询。使用2dsphere
索引,您可以查询包含、相交和邻近的地理空间数据。有关查询地理空间数据的更多信息,请参阅地理空间查询.
要创建一个2dsphere
索引,您必须指定一个只包含GeoJSON对象的字段。有关此类型的更多详细信息,请参阅MongoDB服务器手册中的GeoJSON对象指南。
示例数据
本指南中的示例使用来自Atlas示例数据集的sample_mflix.theaters
集合。有关创建免费MongoDB Atlas集群并加载示例数据集的说明,请参阅使用PyMongo入门.
以下示例文档中的location.geo
字段来自sample_mflix
数据库中theaters
集合,它是一个描述剧院坐标的GeoJSON Point对象。
{ "_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 服务器手册中的地理空间查询指南。