我的用例相当简单:我在 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)?