小编jla*_*tre的帖子

从 mongodb geojson 点集合中查找最大、最小坐标值

我的用例相当简单:我在 mongodb 中有一组文档,地理坐标指定为 GeoJSON Point。

我想找到这个集合的边界框,定义为 lat min、long min、lat max、long max。

这些文件具有以下结构:

{
  "_id": ObjectId("538ed354b83897b4418b4567"),
  "name": "example point",
  "description": "",
  "location": {
    "type": "Point",
    "coordinates": [
      24.501885327447624,
      42.228924279974158
    ]
  },
  "status": "1",
  "type": "image"
}
Run Code Online (Sandbox Code Playgroud)

经过大量搜索和反复试验,我被困在如何继续。

我发现了一些很好的工作方法,它们适用于具有键/值对的子文档(数组),但到目前为止我还没有找到任何适用于普通数组(例如 GeoJSON 坐标对)的方法。

使用聚合时,我面临无法从 GeoJSON 点提取 X、Y 坐标的问题(尝试使用$slice: [0,1]$slice: [1,1]但这似乎在$project管道中不起作用)。放松似乎也不是正确的方法。

Map/reduce 对于 RDMS 中真正的基本查询来说看起来有点矫枉过正。

我最好的方法是什么(最新的 mongodb 版本 2.6.3)?

geolocation mongodb mongodb-query aggregation-framework

2
推荐指数
1
解决办法
1395
查看次数