地理空间索引
地理空间索引支持对存储为 GeoJSON对象或legacy coordinate pairs的数据进行查询。 您可以使用地理空间索引来提高对地理空间数据的查询性能或运行某些地理空间查询。
MongoDB 提供两种类型的地理空间索引:
2dsphere 索引,支持解释球体上的几何形状的查询。
2d 索引,支持在平面上解释几何图形的查询。
要了解有关地理空间数据和查询操作的更多信息,请参阅地理空间查询。
用例
如果应用程序经常查询包含地理空间数据的字段,则可以创建地理空间索引,提高查询性能。
某些查询操作需要地理空间索引。如果您要使用 $near
或 $nearSphere
操作符或 $geoNear
聚合阶段进行查询,则必须创建地理空间索引。有关详细信息,请参阅地理空间查询操作符和地理空间聚合阶段。
例如,考虑一个 subway
集合,其中的文档包含 location
字段,该字段指定城市地铁站的坐标。您经常使用 $geoWithin
操作符运行查询,返回特定区域车站的列表。要提高此查询的性能,您可以在 location
字段上创建地理空间索引。创建索引后,您可以使用 $near
操作符进行查询,按由近到远的顺序返回附近车站的列表。
开始体验
若要创建地理空间索引并运行地理空间查询,请参阅:
详情
本部分介绍有关地理空间索引的详细信息。
分片集合
在对集合进行分片时,不能将地理空间索引用作分片键。但是,您可以使用不同字段作为分片键在分片集合上创建地理空间索引。
覆盖查询
地理空间索引无法涵盖查询。
球面查询
使用 2d
索引查询球形数据可能会返回不正确的结果或错误。例如,2d
索引不支持环绕极点的球形查询。
不过,您可以将 2dsphere
索引用于球形查询和二维查询。对于二维查询,2dsphere
索引将作为传统坐标对存储的数据转换为 GeoJSON 点类型。
了解详情
有关地理空间查询操作示例,请参阅地理空间查询示例。