$center

On this page本页内容

Definition定义

$center

The $center operator specifies a circle for a $geoWithin query. $center运算符为$geoWithin查询指定一个圆。The query returns legacy coordinate pairs that are within the bounds of the circle. 该查询返回位于圆边界内的旧坐标对。The operator does notreturn GeoJSON objects.运算符不返回GeoJSON对象。

To use the $center operator, specify an array that contains:要使用$center运算符,请指定包含以下内容的数组:

  • The grid coordinates of the circle's center point, and圆心的网格坐标,以及
  • The circle's radius, as measured in the units used by the coordinate system.圆的半径,以坐标系使用的单位测量。
{
   <location field>: {
      $geoWithin: { $center: [ [ <x>, <y> ] , <radius> ] }
   }
}
Important重要
If you use longitude and latitude, specify longitude first.如果使用经度和纬度,请先指定经度。

Behavior行为

The query calculates distances using flat (planar) geometry.该查询使用平面(平面)几何图形计算距离。

Applications can use $center without having a geospatial index. 应用程序可以使用$center而无需地理空间索引。However, geospatial indexes support much faster queries than the unindexed equivalents.但是,地理空间索引支持的查询速度比未编制索引的等效查询快得多。

Only the 2d geospatial index supports $center.只有2d地理空间索引支持$center

Example示例

The following example query returns all documents that have coordinates that exist within the circle centered on [ -74, 40.74 ] and with a radius of 10:以下示例查询返回坐标位于以[-74, 40.74]为中心且半径为10的圆内的所有文档:

db.places.find(
   { loc: { $geoWithin: { $center: [ [-74, 40.74], 10 ] } } }
)
←  $box$centerSphere →