$near¶指定地理空间查询从最近到最远返回文档的点。该$near运营商可以指定一个以GeoJSON点或传统的坐标点。
$near 需要地理空间索引:
要指定GeoJSON点,$near运算符需要2dsphere索引,并具有以下语法:
如果指定纬度和经度坐标,请先列出经度,然后再列出 纬度:
-180和之间180,包括两者之间。-90和之间90,包括在内。指定GeoJSON点时,您可以使用可选参数
$minDistance和$maxDistance规范来限制$near以米为单位的距离的结果:
$minDistance将结果限制为距中心点至少指定距离的那些文档。$maxDistance将结果限制为距中心点最多指定距离的那些文档。要使用传统坐标指定点,$near需要2d索引并具有以下语法:
指定旧式坐标时,可以使用可选的
$maxDistance规范来限制$near
结果的弧度距离。$maxDistance将结果限制为距中心点最多指定距离的那些文档。
从MongoDB 4.0开始,分片$near集合支持查询。
在早期的MongoDB版本中,分片$near集合不支持查询。相反,对于分片群集,必须使用$geoNear聚合阶段或geoNear命令(在MongoDB 4.0及更低版本中可用)。
重要
如果指定纬度和经度坐标,请先列出经度,然后再列出 纬度:
-180和之间180,包括两者之间。-90和之间90,包括在内。考虑places具有2dsphere索引的集合。
以下示例返回距指定的GeoJSON点至少1000
几米,最多5000几米(从最近到最远排序)的文档:
重要
如果指定纬度和经度坐标,请先列出经度,然后再列出 纬度:
-180和之间180,包括两者之间。-90和之间90,包括在内。考虑legacy2d具有2d索引的集合。
以下示例返回0.10
从指定的旧式坐标对到最大弧度的文档,从最接近到最远排序: