我正在尝试了解 MongoDB 和地理空间搜索。 基本上我想要的是让用户能够查询文档(图像) 在距用户当前位置的设定距离内拍摄。因此,我的用户正在搜索从他站立的位置 1 公里内拍摄的所有图像,我尝试使用 以下示例,但我不知道将什么设置为 maxdistance 值。
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})
所以我的问题是,如果我正在搜索文档,我应该将什么设置为 maxdistance 半径1公里以内?
我完全被困在这里了。
最佳答案
为了使用带有 km 边界的 mongodb $near
查询,您需要将半径值转换为 km。默认情况下,mongodb $near 接受 $maxDistance
作为 radius
。
在使用 km 时将距离换算为 111.12
(1 度约为 111.12 公里),或在使用 degree 时保持距离不变
你的问题
what do I set as maxdistance if I am searching for documents within a 1 km radius?
你可以用这个
db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )
我已经回答了如何使用 mongo geospatial features here in detail 。你可以去看看
https://stackoverflow.com/questions/7837731/