创建Haystack索引
弃用
MongoDB 4.4不支持geoHaystack索引和地理搜索命令。使用
$geoNear
或$geoWithin
的2d索引。
haystack索引必须引用两个字段:位置字段和第二个字段。第二个字段用于精确匹配。Haystack索引基于位置和对单个附加条件的精确匹配返回文档。这些索引不一定适合于将最近的文档返回到特定位置。
要构建一个haystack索引,请使用以下语法:
要构建haystack索引,必须在创建索引时指定**' bucketSize '选项。' bucketSize '为' 5 '创建一个索引,该索引将指定经度和纬度的5个单位内的位置值分组。“bucketSize”**还决定了索引的粒度。您可以根据数据的分布调整参数,以便通常只搜索很小的区域。bucket定义的区域可以重叠。文档可以存在于多个桶中。
例子
如果您有一个包含类似以下字段的文档集合:
下面的操作创建了一个带有bucket的haystack索引,该bucket将键存储在一个经度或纬度单位内。
这个索引将值为200的**“_id”**字段存储在两个不同的存储桶中:
在包含**“_id”字段值为“100”**的文档的bucket中
在包含**“_id”字段值为“300”**的文档的bucket中
要使用haystack索引进行查询,可以使用 geoSearch 命令。参见查询Haystack索引. 默认情况下,使用haystack索引的查询返回50个文档。
最后更新于