Node.js 在Cloudant中使用MapReduce获取地理空间索引结果
我在Cloudant中使用地理空间索引来检索多边形中的所有文档。现在,我想计算这些文档的一些基本静态值(例如,一个地区的平均年龄和收入总和) 是否可以查询地理索引,然后将结果传递给MapReduce函数? 如何实现这一点,最好是在数据库中实现?我是否可以避免先查询多边形内的文档ID,然后发送检索到的ID以执行MapReduce(我正在处理大型数据集) 到目前为止的工作是查询索引以及使用视图(单独) 我的地理索引 我的看法 示例geoJson文档(原始数据看起来类似)Node.js 在Cloudant中使用MapReduce获取地理空间索引结果,node.js,geospatial,geojson,cloudant,Node.js,Geospatial,Geojson,Cloudant,我在Cloudant中使用地理空间索引来检索多边形中的所有文档。现在,我想计算这些文档的一些基本静态值(例如,一个地区的平均年龄和收入总和) 是否可以查询地理索引,然后将结果传递给MapReduce函数? 如何实现这一点,最好是在数据库中实现?我是否可以避免先查询多边形内的文档ID,然后发送检索到的ID以执行MapReduce(我正在处理大型数据集) 到目前为止的工作是查询索引以及使用视图(单独) 我的地理索引 我的看法 示例geoJson文档(原始数据看起来类似) 这个问题类似,但并没有真正
- 这个问题类似,但并没有真正帮助我:
- 此演示可能是正确的方向:
- 这似乎是一个有用的功能,但答案是“不”。地理索引器无法对数据执行聚合
我认为您必须按照您的想法进行操作——使用返回的文档ID列表在另一个map reduce系统中分发计算 谢谢你的帮助!但是,当我使用键指定要包含哪些文档时,可以使用MapReduce函数(例如_stats)?这对我也不管用。我需要像'keys:['01BFF77F678FA5149E787D2DED0000504','01BFF7F678FC5049E787D2AAA00161C',group:false,group_level:0,reduce:true这样的东西,但是他在reduce视图的多键抓取中的结果必须使用
group=true
是的,这也不行。reduce引擎需要能够以某种方式对数据进行分组。另外,请记住CouchDB/Cloudant构建减少了结果,您正在查询这些结果。您并不是要求数据库对您提供给它的一组文档执行特别的reduce。reduce结果在返回给您之前总是经过预先计算的。
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);
}
}
{
"_id": "01bff77f642fc4249e787d2ded011504",
"_rev": "1-25a9a1a15939d5b21af3fbcc5c2d6ed1",
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
7.2316,
40.99
]
},
"properties": {
"age": 34,
"earnings": 982.7
}
}