geoHaystack
索引
重要
已在 MongoDB 5.0 中删除
MongoDB 5.0删除了已弃用的 geoHaystack索引和geoSearch
命令。 请改用带有 的2 d索引 $geoNear
或受支持的 地理空间查询运算符 之一。
将 MongoDB 实例升级到 5.0 并将 FeatureCompatibilityVersion 设置为 5.0
会删除所有先前存在的 geoHaystack 索引。
geoHaystack
索引是一种特殊索引,经过优化可返回小区域的结果。 geoHaystack
索引可提高使用平面几何图形的查询的性能。
对于使用球面几何的查询, 2dsphere 索引是比干草堆索引更好的选择。 2dsphere 索引允许字段重新排序; geoHaystack
索引要求第一个字段为位置字段。 此外, geoHaystack
索引只能通过命令使用,因此始终会一次返回所有结果。
行为
geoHaystack
索引创建来自同一地理区域的文档“存储桶”,以提高仅限于该区域的查询性能。 geoHaystack
索引中的每个存储桶包含给定经度和纬度的指定邻近范围内的所有文档。
sparse
属性
geoHaystack
索引默认情况下是稀疏的,并忽略稀疏:true选项。 如果文档缺少geoHaystack
索引字段(或者该字段为null
或空数组),MongoDB 不会将该文档的条目添加到geoHaystack
索引。 对于插入,MongoDB 会插入文档,但不会添加到geoHaystack
索引。
geoHaystack
索引包括一个geoHaystack
索引键和一个非地理空间索引键;但是,只有geoHaystack
索引字段可确定索引是否引用文档。
排序规则选项
geoHaystack
索引仅支持简单的二进制比较,不支持排序规则。
要在具有非简单排序规则的collection上创建geoHaystack
索引,您必须在创建索引时显式指定{collation: {locale: "simple"}
}
。
创建geoHaystack
索引
要创建geoHaystack
索引,请参阅创建 Haystack 索引。 有关查询 haystack 索引的信息和示例,请参阅查询 Haystack 索引。