$geoNear
¶以距指定点最近到最远的顺序输出文档。
注意
从4.2版开始,MongoDB删除该阶段的limit
和num
选项,$geoNear
以及默认的100个文档限制。要限制的结果
$geoNear
,请将$geoNear
舞台与舞台一起
使用$limit
。
该$geoNear
阶段具有以下原型形式:
该$geoNear
运营商接受一个文档,包含下面$geoNear
的选项。以与已处理文档的坐标系相同的单位指定所有距离:
领域 | 类型 | 描述 |
---|---|---|
near |
GeoJSON点或旧版坐标对 | 查找最近文档的点。 如果使用2dsphere索引,则可以将点指定为GeoJSON点或旧版坐标对。 如果使用2d索引,则将点指定为旧坐标对。 |
distanceField |
串 | 包含计算出的距离的输出字段。要在嵌入式文档中指定字段,请使用点符号。 |
spherical |
布尔值 | 可选的。确定MongoDB如何计算两点之间的距离:
默认值:false。 |
maxDistance |
数 | 可选的。从中心点的最大距离,这些文件可以 是。MongoDB将结果限制为距中心点指定距离内的那些文档。 |
query |
文献 | 可选的。将结果限制为与查询匹配的文档。查询语法是常用的MongoDB 读取操作查询语法。 |
distanceMultiplier |
数 | 可选的。将查询返回的所有距离相乘的因子。例如,使用distanceMultiplier 乘以地球半径,即可将球形查询返回的弧度转换为千米。 |
includeLocs |
串 | 可选的。这指定了标识用于计算距离的位置的输出字段。当位置字段包含多个位置时,此选项很有用。要在嵌入式文档中指定字段,请使用点符号。 |
uniqueDocs |
布尔值 | 可选的。如果此值为 从2.6版开始不推荐使用:地理空间查询不再返回重复的结果。该
|
minDistance |
数 | 可选的。距文档中心点的最小距离。MongoDB将结果限制为距中心点超出指定距离的那些文档。 为GeoJSON数据指定距离(以米为单位),为旧坐标对指定距离(以弧度为单位)。 3.2版中的新功能。 |
key |
可选的。指定在计算距离时要使用的地理空间索引字段。 如果您的集合具有多个 如果存在多个 如果未指定 版本4.0中的新功能。 |
使用时$geoNear
,请考虑:
注意
从4.2版开始,MongoDB删除该阶段的limit
和num
选项,$geoNear
以及默认的100个文档限制。要限制的结果
$geoNear
,请将$geoNear
舞台与舞台一起
使用$limit
。
考虑places
具有2dsphere
索引的集合。以下汇总用于$geoNear
查找距中心最多2米且等于的文档。[ -73.99279 , 40.719296
]
category
Parks
聚合返回以下内容:
匹配的文档包含两个新字段:
dist.calculated
包含计算出的距离的字段,以及dist.location
包含计算中使用的位置的字段。