地理空间索引
Overview
MongoDB支持使用2 dsphere 索引查询地理空间坐标数据。 使用 2dsphere
索引,您可以查询地理空间数据的包含、相交和邻近范围。 有关查询地理空间数据的更多信息,请参阅地理空间查询。
要创建2dsphere
索引,您必须指定仅包含GeoJSON 对象的字段。 有关此类型的更多详细信息,请参阅 MongoDB Server 手册中的GeoJSON 对象指南。
样本数据
本指南中的示例使用Atlas示例数据集中的sample_mflix.theaters
集合。 要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅 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 手册中的地理空间查询指南。