我有一个经度和纬度的mongodb数据库。 我想要的是返回经度和纬度在1KM半径或更高范围内的所有数据。
{
user:rex,
longitude: 24,
latitude: 20
}
答案 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 } } )