$centerSphere
定义
$centerSphere
为使用球面几何的地理空间查询定义一个圆。 该查询返回位于圆边界内的文档。 您可以在
$centerSphere
GeoJSON对象和 上使用legacy coordinate pairs 操作符。要使用
$centerSphere
,请指定一个包含以下内容的数组:圆中心点的网格坐标,以及
以弧度为单位测量的圆的半径。要计算弧度,请参阅将距离转换为球面弧度操作符。
{ <location field>: { $geoWithin: { $centerSphere: [ [ <x>, <y> ], <radius> ] } } } 重要
如果使用经度和纬度,请先指定经度。
行为
应用程序可以在没有地理空间索引的情况下使用 $centerSphere
。但与未编制索引的同类查询相比,地理空间索引支持更快的查询速度。
2 dsphere和2 d地理空间索引都支持$centerSphere
。
例子
以下示例查询网格坐标并返回经度 88 W
和纬度 30 N
的 10 英里半径内的所有文档。该查询通过除以近似地球赤道半径 3963.2 英里,将距离转换为弧度:
db.places.find( { loc: { $geoWithin: { $centerSphere: [ [ -88, 30 ], 10/3963.2 ] } } } )