在本页面
要建立地理空间2d
索引,请使用
db.collection.createIndex()
方法并指定2d
。使用以下语法:
该2d
指数采用下列可选指标规格选项:
2d
指数¶默认情况下,2d
索引采用经度和纬度,并且边界为-180 包含和180 非包含。如果文档包含超出指定范围的坐标数据,则MongoDB返回错误。
重要
默认边界允许应用程序插入无效纬度大于90或小于-90的文档。没有定义具有此类无效点的地理空间查询的行为。
在2d
索引上,您可以更改位置范围。
您可以2d
使用默认范围以外的位置范围来构建地理空间索引。创建索引时使用min
和max
选项。使用以下语法:
2d
指数¶默认情况下,2d
旧坐标对上的索引使用26位精度,使用默认范围-180到180,大约等于2英尺或60厘米的精度。精度由所用geohash值的位大小来度量存储位置数据。您最多可以配置32位精度的地理空间索引。
索引精度不影响查询精度。实际的网格坐标始终用于最终查询处理中。降低精度的优点是插入操作的处理开销较低,并且占用的空间更少。更高精度的优点是查询扫描索引的较小部分以返回结果。
要配置默认位置以外的位置精度,请bits
在创建索引时使用该
选项。使用以下语法:
有关geohash值内部的信息,请参见 2d索引的Geohash值计算。