$centerSphere
Definition
$centerSphere
- Defines a circle for a geospatial query that uses sphericalgeometry. The query returns documents that are within the bounds ofthe circle. You can use the
$centerSphere
operator on bothGeoJSON objects and legacy coordinate pairs.
To use $centerSphere
, specify an array that contains:
- The grid coordinates of the circle’s center point, and
- The circle’s radius measured in radians. To calculate radians, seeCalculate Distance Using Spherical Geometry.
- {
- <location field>: {
- $geoWithin: { $centerSphere: [ [ <x>, <y> ], <radius> ] }
- }
- }
Important
If you use longitude and latitude, specify longitude first.
Behavior
Applications can use $centerSphere
without having a geospatial index.However, geospatial indexes support much faster queries than theunindexed equivalents.
Both 2dsphere and 2dgeospatial indexes support $centerSphere
.
Example
The following example queries grid coordinates and returns alldocuments within a 10 mile radius of longitude 88 W
and latitude30 N
. The query converts the distance to radians by dividing by theapproximate equatorial radius of the earth, 3963.2 miles:
- db.places.find( {
- loc: { $geoWithin: { $centerSphere: [ [ -88, 30 ], 10/3963.2 ] } }
- } )