- Reference >
- Operators >
- Query and Projection Operators >
- Geospatial Query Operators >
- $polygon
$polygon¶
On this page
Definition¶
-
$polygon
¶ New in version 1.9.
Specifies a polygon for a geospatial
$geoWithin
query on legacy coordinate pairs. The query returns pairs that are within the bounds of the polygon. The operator does not query for GeoJSON objects.To define the polygon, specify an array of coordinate points:
The last point is always implicitly connected to the first. You can specify as many points, i.e. sides, as you like.
Important
If you use longitude and latitude, specify longitude first.
Behavior¶
The $polygon
operator calculates distances using flat (planar)
geometry.
Changed in version 2.2.3: Applications can use $polygon
without having a geospatial
index. However, geospatial indexes support much faster queries than
the unindexed equivalents. Before 2.2.3, a geospatial index must
exist on a field holding coordinates before using any of the
geospatial query operators.
Only the 2d geospatial index supports the
$polygon
operator.
Example¶
The following query returns all documents that have coordinates that
exist within the polygon defined by [ 0 , 0 ]
, [ 3 , 6 ]
, and
[ 6 , 0 ]
: