使用MapReduce来处理Cloudant中的地理空间索引结果

我在Cloudant中使用地理空间索引来检索多边形内的所有文档。 现在我想为这些文件计算一些基本的静态值(例如,一个地区的平均年龄和收入总和)。

是否有可能查询地理索引,然后将结果传递给MapReduce函数?

我怎么能实现这一点,最好在数据库内? 我可以避免查询多边形中的文档ID,然后发送执行MapReduce(我正在处理大型数据集)的检索ID?

到目前为止工作的是查询索引以及使用视图(单独)。

我的地理索引

function (doc) { if (doc.geometry && doc.geometry.coordinates) { st_index(doc.geometry); } } 

我的看法

 function (doc) { var beitrag = doc.properties.beitrag; var schadenaufwand = doc.schadenaufwand; if(beitrag !== null && typeof beitrag === 'number' ) { emit(doc._id, doc.properties.beitrag); } } 

示例geoJson文档(原始数据看起来相似)

 { "_id": "01bff77f642fc4249e787d2ded011504", "_rev": "1-25a9a1a15939d5b21af3fbcc5c2d6ed1", "type": "Feature", "geometry": { "type": "Point", "coordinates": [ 7.2316, 40.99 ] }, "properties": { "age": 34, "earnings": 982.7 } } 
  • 这个问题是类似的,但并没有真正帮助我: Cloudant – 将视图/ mapReduce应用于地理空间查询

  • 这个演示可能是正确的方向: https : //examples.cloudant.com/simplegeo_places/_design/geo/index.html

这似乎是一个有用的function,但答案是'不'。 Geo索引器无法对数据执行聚合。

我想你必须按照你的想法去做 – 使用返回的doc ID列表来分配另一个map-reduce系统中的计算。