On this page本页内容
$nearSphere
¶Specifies a point for which a geospatial query returns the documents from nearest to farthest. 指定地理空间查询从最近到最远返回文档的点。MongoDB calculates distances for MongoDB使用球形几何体计算$nearSphere
using spherical geometry.$nearSphere
的距离。
$nearSphere
requires a geospatial index:需要地理空间索引:
coordinates
field of the GeoJSON object.The $nearSphere
operator can specify either a GeoJSON point or legacy coordinate point.
To specify a GeoJSON Point, use the following syntax:要指定GeoJSON点,请使用以下语法:
$minDistance
limits the results to those documents that are at least the specified distance from the center point.$maxDistance
is available for either index.To specify a point using legacy coordinates, use the following syntax:要使用传统坐标指定点,请使用以下语法:
$minDistance
is available only if the query uses the 2dsphere index. $minDistance
limits the results to those documents that are at least the specified distance from the center point.$maxDistance
is available for either index.If you use longitude and latitude for legacy coordinates, specify the longitude first, then latitude.如果对传统坐标使用经度和纬度,请先指定经度,然后指定纬度。
You cannot combine the $nearSphere
operator, which requires a special geospatial index, with a query operator or command that requires another special index. For example you cannot combine $nearSphere
with the $text
query.
Starting in MongoDB 4.0, 从MongoDB 4.0开始,分片集合支持$nearSphere
queries are supported for sharded collections.$nearSphere
查询。
In earlier MongoDB versions, $nearSphere
queries are not supported for sharded collections; instead, for sharded clusters, you must use the $geoNear
aggregation stage or the geoNear
command (available in MongoDB 4.0 and earlier).
$nearSphere
sorts documents by distance. If you also include a sort()
for the query, sort()
re-orders the matching documents, effectively overriding the sort operation already performed by $nearSphere
. When using sort()
with geospatial queries, consider using $geoWithin
operator, which does not sort documents, instead of $nearSphere
.
Consider a collection places
that contains documents with a location
field and has a 2dsphere index.
Then, the following example returns whose location
is at least 1000
meters from and at most 5000
meters from the specified point, ordered from nearest to farthest:
2d
Consider a collection 考虑一个集合legacyPlaces
that contains documents with legacy coordinates pairs in the location
field and has a 2d index.legacyPlaces
,其中包含位置字段中具有旧坐标对的文档,并且具有2d索引。
Then, the following example returns those documents whose 然后,以下示例返回其location
is at most 0.10
radians from the specified point, ordered from nearest to farthest:location
距离指定点最多0.10
弧度的文档,按从最近到最远的顺序排列:
2dsphere
If the collection has a 2dsphere
index instead, you can also specify the optional $minDistance
specification. For example, the following example returns the documents whose 例如,以下示例返回其location
is at least 0.0004
radians from the specified point, ordered from nearest to farthest:location
距离指定点至少0.0004
弧度的文档,按从最近到最远的顺序排列: