参考 > 参考 > 经营者 > 查询和投影运算符 > 地理空间查询运算符 > $多边形
在本页面
$polygon
为旧式坐标对上的地理空间 $geoWithin查询指定多边形 。该查询返回多边形边界内的对。操作者不能查询GeoJSON的对象。
$geoWithin
要定义多边形,请指定一个坐标点数组:
{ <location field>: { $geoWithin: { $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ] } } }
最后一点总是隐式地连接到第一个点。您可以根据需要指定任意数量的点,即边。
重要
如果您使用经度和纬度,请先指定经度。
所述$polygon使用平面(平面)几何操作计算距离。
应用程序可以在没有地理空间索引的情况下使用。但是,地理空间索引比未索引的等效索引支持更快的查询。$polygon
只有2d地理空间索引支持 $polygon运算符。
下面的查询返回存在通过定义的多边形内的坐标的所有文件,以及 :[ 0 , 0 ][ 3 , 6 ][ 6 , 0 ]
[ 0 , 0 ]
[ 3 , 6 ]
[ 6 , 0 ]
db.places.find( { loc: { $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] } } } )