$polygon
定義
$polygon
legacy coordinate pairs に対する地理空間
$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 ] ] } } } )