发布于 2015-09-14 15:08:30 | 184 次阅读 | 评论: 0 | 来源: 网络整理

$centerSphere

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:

  • The center point
  • The angular distance in radians (distance along the surface of the earth).

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.

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务