我在位置属性上有一组带有地理空间索引的商店。
我想要做的是给定用户的纬度、纬度和搜索半径 (mi),我想返回这些参数内的商店列表。
我在 MongoDB 文档 ( http://www.mongodb.org/display/DOCS/Geospatial+Indexing )上看到了以下示例,但看起来距离是以弧度为单位的。
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
那么,将英里转换为弧度的公式是什么?
解决方案 mongodb-user 很棒的人帮我找到了答案。基本上,我真正想要的是一种限制距离的方法。
根据更新的文档,$near 查询有第三个参数:您也可以使用 $near 和最大距离
db.places.find( { loc : { $near : [50,50] , $maxDistance : 5 } } ).limit(20)
$maxDistance 的值以弧度为单位;所以,我必须以英里为单位,除以 69。
谢谢!