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