Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在Cloudant中使用MapReduce获取地理空间索引结果_Node.js_Geospatial_Geojson_Cloudant - Fatal编程技术网

Node.js 在Cloudant中使用MapReduce获取地理空间索引结果

Node.js 在Cloudant中使用MapReduce获取地理空间索引结果,node.js,geospatial,geojson,cloudant,Node.js,Geospatial,Geojson,Cloudant,我在Cloudant中使用地理空间索引来检索多边形中的所有文档。现在,我想计算这些文档的一些基本静态值(例如,一个地区的平均年龄和收入总和) 是否可以查询地理索引,然后将结果传递给MapReduce函数? 如何实现这一点,最好是在数据库中实现?我是否可以避免先查询多边形内的文档ID,然后发送检索到的ID以执行MapReduce(我正在处理大型数据集) 到目前为止的工作是查询索引以及使用视图(单独) 我的地理索引 我的看法 示例geoJson文档(原始数据看起来类似) 这个问题类似,但并没有真正

我在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
        }
      }