【问题标题】:MongoDb: $geoIntersects for multiple input coordinatesMongoDb:$geoIntersects 用于多个输入坐标
【发布时间】:2019-04-13 22:18:51
【问题描述】:

我有一个坐标列表,我需要执行$geoIntersects 查询。对于一个坐标,查询如下所示:

db.polygons.find({ 
    geometry: { 
        $geoIntersects: {
            $geometry: {
                type: "Point", coordinates: [24.053640, 49.812427]
            } 
        } 
    } 
})

问题是有一个输入坐标列表,我需要为每个坐标找到一个多边形。到目前为止,我发现的唯一方法是在应用程序代码中迭代它们并执行 N 次查询。

是否可以通过一个 MongoDB 查询来完成?如果没有,任何关于如何优化的想法都值得赞赏。

【问题讨论】:

  • 您是否尝试过使用 MultiPoint 几何类型和相应的坐标对数组?
  • @lusitanica 确实有效!请发布答案,我很乐意接受。

标签: mongodb geospatial


【解决方案1】:

一种可能的解决方案是将 Point 几何类型替换为 MultiPoint 几何类型,并将输入坐标列表作为数组传递。

db.polygons.find({ 
geometry: { 
    $geoIntersects: {
        $geometry: {
            type: "MultiPoint", coordinates: [[24.053640, 49.812427],[...]...] 
        } 
    } 
} 
})

【讨论】:

  • 我可以确认它有效,我使用的命令:db.polygons.find({ geometry: { $geoIntersects: { $geometry: { type: "MultiPoint", coordinates: [[24.053640 , 49.812427],[...]...] } } } })
  • @LuisTavares 建议:添加 Yuriy 的结果(评论)并将其嵌入您的答案中。
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 2020-05-10
  • 1970-01-01
相关资源
最近更新 更多