bedDb地图/减少最小和最大+其他数据

时间:2019-02-28 13:47:09

标签: couchdb

我有一个包含以下内容的文档列表:

  • 时间
  • sessionId
  • appv
  • 博物馆

我想使用ouchDB map / reduce函数来获取结果:

key : sessionId, value : {begin : time, end: time, appv : appv, museum : museum}

起始值:最小时间值。

结束值:最大时间值

当前,我可以使用以下代码获得最小值和最大值:

地图:

 function(doc) {
   if(doc.sessionId) {
    emit(doc.sessionId, [doc.time]) 
   }
 }

减少:

function(keys, values, rereduce) {

  if (rereduce) {
    return {
      'min': values.reduce(function(a, b) { return Math.min(a, b.min) }, Infinity),
      'max': values.reduce(function(a, b) { return Math.max(a, b.max) }, -Infinity),
    }
  } else {
    return {
      'min': Math.min.apply(null, values),
      'max': Math.max.apply(null, values),
    }
  }
}

结果:

{"rows":[
{"key":"fromDev1548326238156","value":{"min":2,"max":999}}
]}

当我使用此地图功能时:

  function(doc) {
       if(doc.sessionId) {
        emit(doc.sessionId, [doc.time, doc.museum, doc.appv]) 
       }
     }

我找不到让我得到想要的结果的reduce函数

你能帮我吗?

0 个答案:

没有答案