使用$ near查找mongodb中某个点的最近多边形

时间:2015-04-23 12:16:06

标签: mongodb

我在集合中有一些多边形作为文档。我需要找到半径为50公里的点的最近的多边形。在mongo db附近的$将适用于积分。有没有办法使用$ near来搜索特定点的最近多边形。

2 个答案:

答案 0 :(得分:3)

您可以使用$near开箱即用。 $near找到一个点的最近几何。几何不必是点:

> db.test.drop()
> db.test.insert({ 
    "loc" : { 
        "type": "Polygon",
        "coordinates": [[[10.0, 0.0], [11.0, 0.0], [11.0, 1.0], [10.0, 1.0], [10.0, 0.0]]]
     } 
})
> db.test.ensureIndex({ "loc" : "2dsphere" })
> db.test.find({ 
    "loc" : {
        "$near" : { 
            "$geometry" : { 
                "type" : "Point", 
                "coordinates" : [8.5, 12.1] 
            } 
        } 
    } 
}, { "_id" : 0, "loc.type" : 1 })
{ "loc" : { "type" : "Polygon" } }

答案 1 :(得分:0)

也许尝试使用$geoIntersects代替$ near?