查找是否给定经度,纬度对位于MongoDB

时间:2017-10-17 16:58:39

标签: arrays database mongodb analytics geospatial

根据我目前对MongoDB的理解,我们通过传递一个[long,lat]对数组来搜索我们的集合,以检查该文档的[long,lat]对是否在坐标[[ [], [], [] ]]内退出。

i,e。,

db.SomeCollection.find({
    "location":{
        $geoWithin: {
            $geometry: { 
                type: "Polygon", 
                coordinates: [
                    [[1, 2], [1, 3], [1, 4]],
                    [[2, 5], [2, 6], [2, 7]]
                ] }
        }
    }
})

我正在寻找的是我需要将[long,lat]对提供给包含固定多边形地理栅栏阵列的文档,并得出结论[long,lat]对是否存在于任何[多边形地理栅栏阵列]中。

这在MongoDB中是否可行?我的问题有效吗?

  

请注意:我是MongoDB以及地理空间数据的新手   如果问题包含错误的术语,请原谅。

1 个答案:

答案 0 :(得分:0)

几天后,我回答了我的问题,因为我找到了答案。

该解决方案已发布在here by Jacob Ribnik

因此在我的问题中实现它将如下所示:

db.Poly_Geofence_collection.find(
{
    "location": {
        $geoIntersects: {
            $geometry: {
                type: "Point",
                coordinates: [1,1]
            }
        }
    }
});

我的Poly_Geofence_collection集合的位置如下:

{
    "_id": ObjectId("SomeRandom12ByteObjectId"),
    "location" : {
        "type" : "Polygon",
        "name" : "Location Name",
        "coordinates" : [
            [
                [0, 0], [1, 2], [1, 1], [2, 1], [0, 0]
            ]
        ]
    }
}