$box¶
On this page
Definition¶
- $box¶
Specifies a rectangle for a geospatial $geoWithin query to return documents that are within the bounds of the rectangle, according to their point-based location data. When used with the $box operator, $geoWithin returns documents based on grid coordinates and does not query for GeoJSON shapes.
To use the $box operator, you must specify the bottom left and top right corners of the rectangle in an array object:
{ <location field>: { $geoWithin: { $box: [ [ <bottom left coordinates> ], [ <upper right coordinates> ] ] } } }
Important
If you use longitude and latitude, specify longitude first.
Behavior¶
The query calculates distances using flat (planar) geometry.
Changed in version 2.2.3: Applications can use $box 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 $box.
Example¶
The following example query returns all documents that are within the box having points at: [ 0 , 0 ], [ 0 , 100 ], [ 100 , 0 ], and [ 100 , 100 ].
db.places.find( {
loc: { $geoWithin: { $box: [ [ 0, 0 ], [ 100, 100 ] ] } }
} )
Thank you for your feedback!
We're sorry! You can Report a Problem to help us improve this page.