2dsphere 索引
2dsphere 索引支持对类似地球的球体进行地理空间查询。例如,2dsphere 索引可以:
确定指定区域内的点。
计算到指定点的距离。
返回坐标查询的精确匹配结果。
被索引字段的值必须为以下二者之一:
对于传统坐标对,2dsphere 索引将数据转换为 Geo JSON 点。
要创建 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 索引只能引用一个位置字段和一个其他字段。