$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 ] ] } } } )