$polygon
MongoDB5.0 已于 10 月2024 结束生命周期。不再支持此版本的文档。要升级5.0 部署,请参阅 MongoDB6 。0 升级程序。
定义
$polygon
为 上的 地理空间 查询指定多边形。
$geoWithin
legacy coordinate pairs查询返回多边形边界内的数据对。 该操作符不会查询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 ] ] } } } )