2dsphere 索引
2dsphere 索引支持在类似地球的球体上进行地理空间查询。例如,2dsphere 索引可以
确定指定区域内的点。
计算与指定点的距离。
在坐标查询中返回精确匹配。
索引字段的值必须是以下类型之一
对于传统坐标对,2dsphere 索引将数据转换为 GeoJSON 点。
要创建 2dsphere 索引,指定字符串2dsphere
作为索引类型
db.<collection>.createIndex( { <location field> : "2dsphere" } )
注意
在创建 2dsphere 索引时,第一个值,即经度,必须在 -180 和 180 之间,包括。第二个值,即纬度,必须在 -90 和 90 之间,包括。这些坐标在球体上“环绕”。例如,-179.9 和 +179.9 是近邻。
用例
使用 2dsphere 索引查询和计算位于地球或另一个球面上的位置数据。例如
一个食品配送应用程序使用 2dsphere 索引来支持附近的餐厅搜索。
一个路线规划应用程序使用 2dsphere 索引来计算休息站之间的最短距离。
一个城市规划者使用 2dsphere 索引来查找存在于城市范围内的公园。
开始使用
要了解如何创建和查询 2dsphere 索引,请参阅
详细信息
2dsphere索引始终是稀疏的,并且当作为复合索引的一部分创建时具有特殊行为。复合索引。
sparse
属性
2dsphere索引始终是稀疏的。当创建2dsphere索引时,MongoDB忽略sparse
选项。
如果现有或新插入的文档不包含2dsphere索引字段(或字段是null
或空数组),MongoDB不会将文档条目添加到索引中。
复合2dsphere索引
对于包含2dsphere索引键以及其他类型键的复合索引,只有2dsphere索引字段确定索引是否引用文档。
复合2dsphere索引可以引用多个位置和非位置字段。相比之下,复合2d索引只能引用一个位置字段和一个其他字段。