我想要一个 MongoDB 集合,每个文档都包含一个由纬度/经度点(在 GeoJSON 中)定义的地理空间多边形。然后,我想获取任何给定的经度/纬度点并检查它是否位于文档中定义的任何 MongoDB 多边形内。假设,这就是文件的样子。
{
"type" : "congressional",
"points" : [
{ "coords" : [
-141.0205,
70.0187 ]
},
...
{ "coords" : [
-141.0205,
70.0187 ]
}
]
}
或者可能像这样:
{ loc :
{ type : "Polygon" ,
coordinates : [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
} }
然后我会假设性地查询它(很可能是 Mongo's $geoWithin
):
db.places.find( { loc : { $geoWithin : { $geometry : "EACH DOCUMENT IN COLLECTION"} } } )
地理围栏或类似的东西可以与当前的 MongoDB 功能集一起使用吗?如果是这样,它会怎么做?