在Mongodb中以公里半径查询位置?

时间:2016-12-09 11:28:33

标签: mongodb

我有一个名为restaurants的集合..而且我已经格式化为geoJSON,我试图以下列方式查询

db.restaurants.find({ location:
   { $geoWithin:
      { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5 / 3963.2 ] } } })

我已经提到了半径5/3963.2(以英里为单位计算)..但我需要以公里为单位的半径距离{ $centerSphere: [ [ -73.93414657, 40.82302903 ], 5] }

我需要提到以公里为单位的半径

怎么做?

1 个答案:

答案 0 :(得分:7)

MongoDB期望弧度值。

要将距离转换为弧度,只需将距离值除以球体(地球)的半径,其中:

3963.2是Miles中的地球半径。

6378.1是以公里为单位的地球半径。

db.restaurants.find({ location:
   { $geoWithin:
      { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5 / 6378.1 ] } } })