发布于 2015-09-14 15:08:30 | 195 次阅读 | 评论: 0 | 来源: 网络整理
1.8 新版功能.
The $centerSphere operator is the spherical equivalent of the $center operator. $centerSphere uses spherical geometry to define a circle for use by the $within operator in geospatial queries.
To define the bounds of a query using $centerSphere, you must specify:
Consider the following prototype:
db.collection.find( { loc: { $within:
{ $centerSphere:
[ [<long>,<lat>], <distance> / <radius> ]
} } } )
The following example returns all documents within a 10 mile radius of longitude 88 W and latitude 30 N. MongoDB converts the distance, 10 miles, to radians by dividing by the approximate radius of the earth, 3959 miles:
db.collection.find( { loc: { $within:
{ $centerSphere:
[ [88,30], 10 / 3959 ]
} } } )
在 2.2.3 版更改: Before 2.2.3, a geospatial index must exist on a field holding coordinates before using any of the geolocation query operators. After 2.2.3, applications may use geolocation query operators without having a geospatial index; however, geospatial indexes will support much faster geospatial queries than the unindexed equivalents.
注解
A geospatial index must exist on a field and the field must hold coordinates before you can use any of the geolocation query operators.