在MongoDB中根据地点半径而不是用户半径查找地点

时间:2015-05-13 05:41:40

标签: mongodb gps geolocation geojson

我需要以与跟随图像相同的方式找到地点。

我的收藏是:

{
    name: "Mc Donalds",
    location: { 
        "type": "Circle",
        "coordinates": [100,0],
        "radius": 20
    }
}

没有成功,我尝试使用以下代码进行搜索:

db.places.find({
    location: {
        $geoIntersects: {
            $geometry: {
                type: "Point",
                coordinates: [ 110, 10]
            }
        }
    }
})

如何获得包含Point的所有圆圈,如图片所示?

User point search all places with determinate radius

1 个答案:

答案 0 :(得分:0)

你想得到Point 110,10附近的所有餐馆 - 所以一圈一圈< 200米,200至500米?所以你可能想使用geoNear?

db.runCommand({ 
"geoNear" : "places", 
"near" : { "type" : "Point" , "coordinates" : [110, 10] },
"spherical" : true, 
"distanceMultiplier" : 0.001,
query: { "category": "restaurants" }
})

geoNear按距离对文档进行排序。您可以使用minDistance / maxDistance参数或相应地对结果集进行分组。