On this page
$polygon
在本页面
Definition
$polygon
- 为旧坐标对上的geospatial $geoWithin查询指定多边形。该查询返回多边形范围内的对。操作员不查询 GeoJSON 对象。
要定义多边形,请指定一个坐标点数组:
{
<location field>: {
$geoWithin: {
$polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ]
}
}
}
最后一点总是隐式地连接到第一个点。您可以根据需要指定任意多个点,即边。
Important
如果您使用经度和纬度,请指定 longitude first 。
Behavior
$polygon运算符使用平面(平面)几何来计算距离。
应用程序可以使用$polygon *不具有地理空间索引。但是,地理空间索引比未索引的等效索引支持更快的查询。
Example
以下查询返回由[ 0 , 0 ]
,[ 3 , 6 ]
和[ 6 , 0 ]
定义的面中存在的所有坐标的所有文档:
db.places.find(
{
loc: {
$geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] }
}
}
)