2d
对在二维平面上存储为点的数据使用索引。该2d
索引适用于MongoDB 2.2及更早版本中使用的旧式坐标对。
在以下情况下使用2d
索引:
有关地理空间查询的更多信息,请参见 地理空间查询。
从MongoDB 4.0开始,您可以key
在$geoNear
管道阶段指定一个选项
以指示要使用的索引字段路径。这允许将$geoNear
舞台用于具有多个2d
索引和/或多个
2dsphere索引的集合:
2d
索引和/或多个
2dsphere索引,则必须使用该key
选项来指定要使用的索引字段路径。key
,则不能有多个
2d
索引和/或多个2dsphere索引,因为如果没有使用key
,则多个2d
索引或
2dsphere
索引之间的索引选择是不明确的。注意
如果您未指定key
,并且最多只有一个
2d
索引索引和/或只有一个2d
索引索引,则MongoDB首先会寻找2d
要使用的索引。如果2d
索引不存在,则MongoDB查找2dsphere
要使用的索引。
2d
如果您的位置数据包含GeoJSON对象,请不要使用索引。要同时在旧式坐标对 和 GeoJSON对象上建立索引,请使用2dsphere索引。
分片集合时,不能将2d
索引用作分片键。但是,可以通过使用其他字段作为分片键在分片集合上创建地理空间索引。
该2d
索引支持在平坦的欧几里德平面上进行的计算。该2d
索引还支持球体(例如)
上的仅距离计算$nearSphere
,但是对于
球体(例如)上的几何计算$geoWithin
,请将数据存储为GeoJSON对象并使用
2dsphere
索引。
甲2d
索引可以参考两个字段。第一个必须是位置字段。阿2d
化合物索引构造该第一选择的位置字段的查询,然后过滤由附加标准的那些结果。复合2d
索引可以涵盖查询。