mongodb过滤半径范围内的所有经度和纬度

时间:2014-07-21 17:19:09

标签: mongodb

我有一个经度和纬度的mongodb数据库。 我想要的是返回经度和纬度在1KM半径或更高范围内的所有数据。

{
   user:rex,
   longitude: 24,
   latitude: 20

}

1 个答案:

答案 0 :(得分:2)

要首先使用半径过滤 MongoDB 中的集合,请创建地理空间索引。

如果您的收藏名称是user,那么

db.user.ensureIndex({loc:"2d"})

您需要将半径值转换为km。默认情况下,mongodb $near接受$maxDistance作为半径。

现在,您可以在1km半径内搜索

 db.user.find({ loc : { $near : [yourLat,yourLon] , $maxDistance : 100/111.12 } } )

了解更多MongoDb version 2.2 doc