$polygon

在本页面

Definition

  • $polygon
    • 为旧坐标对上的geospatial $geoWithin查询指定多边形。该查询返回多边形范围内的对。操作员查询 GeoJSON 对象。

要定义多边形,请指定一个坐标点数组:

{
   <location field>: {
      $geoWithin: {
         $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ]
      }
   }
}

最后一点总是隐式地连接到第一个点。您可以根据需要指定任意多个点,即边。

Important

如果您使用经度和纬度,请指定 longitude first

Behavior

$polygon运算符使用平面(平面)几何来计算距离。

应用程序可以使用$polygon *不具有地理空间索引。但是,地理空间索引比未索引的等效索引支持更快的查询。

2d地理空间索引支持$polygon运算符。

Example

以下查询返回由[ 0 , 0 ][ 3 , 6 ][ 6 , 0 ]定义的面中存在的所有坐标的所有文档:

db.places.find(
  {
     loc: {
       $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] }
     }
  }
)