Docs 主页 → 开发应用程序 → MongoDB Manual
$polygon
定义
$polygon
为传统坐标对上的地理空间
$geoWithin
查询指定多边形。查询返回多边形范围内的数据对。操作符不查询 GeoJSON 对象。要定义多边形,请指定坐标点数组:
{ <location field>: { $geoWithin: { $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ] } } } 最后一点始终与第一点隐式相连。您可以根据需要指定任意数量的点,即边。
重要
如果使用经度和纬度,请先指定经度。
行为
$polygon
操作符使用平面(平面)几何图形来计算距离。
应用程序可以在$polygon
没有 地理空间索引的情况下使用 。但是,与未编制索引的同类查询相比,地理空间索引支持的查询速度要快得多。
例子
以下查询返回坐标位于由 [ 0 , 0 ]
、[ 3 , 6 ]
和 [ 6 , 0 ]
定义的多边形内的所有文档:
db.places.find( { loc: { $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] } } } )