地理空间索引

地理空间索引支持对存储为GeoJSON对象或旧坐标对的数据进行查询。您可以使用地理空间索引来提高地理空间数据查询的性能或运行某些地理空间查询。

MongoDB 提供两种类型的地理空间索引:

要了解有关地理空间数据和查询操作的更多信息,请参阅地理空间查询。

用例

如果您的应用程序经常查询包含地理空间数据的字段,您可以创建地理空间索引来提高这些查询的性能。

某些查询操作需要地理空间索引。如果要使用$nearor$nearSphere 运算符或$geoNear聚合阶段进行查询,则必须创建地理空间索引。有关详细信息,请参阅地理空间查询运算符地理空间聚合阶段。

例如,考虑一个包含包含字段subway的文档的集合location,该字段指定城市中地铁站的坐标。您经常与$geoWithin操作员一起运行查询以返回特定区域内的车站列表。为了提高此查询的性能,您可以在字段上创建地理空间索引location。创建索引后,您可以使用$near运算符查询返回附近站点的列表,按从最近到最远的顺序排序。

开始使用

要创建地理空间索引并运行地理空间查询,请参阅:

细节

本节介绍有关地理空间索引的详细信息。

分片集合

对集合进行分片时,不能使用地理空间索引作为分片键。但是,您可以使用不同的字段作为分片键在分片集合上创建地理空间索引。

您可以使用地理空间查询运算符聚合阶段来查询分片集合上的地理空间数据。

在 MongoDB 4.0 之前,$near$nearSphere片集合不支持查询。相反,您可以使用$geoNear 聚合阶段或geoNear命令。

覆盖查询

地理空间索引无法覆盖查询。

球面查询

使用2d索引对球形数据进行查询可能会返回不正确的结果或错误。例如, 2d索引不支持环绕极点的球形查询。

但是,您可以将2dsphere索引用于球形查询 二维查询。对于二维查询, 2dsphere索引会将存储为旧坐标对的数据转换为GeoJSON Point类型。

了解更多

有关示例地理空间查询操作,请参阅 地理空间查询示例。

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""