地理空间索引
地理空间索引支持以下存储的数据的查询:GeoJSON 对象或 旧版坐标对。您可以使用地理空间索引来提高对地理空间数据的查询性能或运行某些地理空间查询。
MongoDB 提供两种类型的地理空间索引
2dsphere 索引,它支持在球体上解释几何形状的查询。
2d 索引,它支持在平坦表面上解释几何形状的查询。
要了解更多关于地理空间数据和查询操作的信息,请参阅地理空间查询。
用例
如果您的应用程序经常查询包含地理空间数据的字段,您可以为这些查询创建地理空间索引来提高性能。
某些查询操作需要地理空间索引。如果您想使用$near或$nearSphere运算符或$geoNear聚合阶段进行查询,您必须创建地理空间索引。有关详细信息,请参阅地理空间查询运算符和地理空间聚合阶段。
例如,考虑一个包含具有指定城市地铁站点坐标的location字段的subway集合。您经常使用$geoWithin运算符来返回特定区域内的一组站点。为了提高此查询的性能,您可以在location字段上创建地理空间索引。创建索引后,您可以使用$near运算符进行查询,以返回按从近到远排序的附近站点列表。
入门
要创建地理空间索引并运行地理空间查询,请参阅
详细信息
本节描述了关于地理空间索引的详细信息。
分片集合
当对集合进行分片时,不能将地理空间索引用作分片键。然而,您可以使用不同的字段作为分片键在分片集合上创建地理空间索引。
覆盖查询
地理空间索引不能覆盖查询。
球面查询
对于球面数据的查询,使用二维索引可能会返回错误结果或错误。例如,二维索引不支持环绕两极的球面查询。
然而,您可以使用 2dsphere 索引进行球面查询和二维查询。对于二维查询,2dsphere 索引将存储为旧坐标对的旧数据转换为 GeoJSON Point 类型。
了解更多
有关示例地理空间查询操作,请参阅 地理空间查询示例。