карта couchDb / уменьшить мин и макс + другие данные - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть список документов, который состоит из:

  • время
  • sessionId
  • appv
  • музей

Я хотел бы использовать функцию преобразования / уменьшения couchDB для получения результата:

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]) 
       }
     }

Я не могу найти функцию уменьшения, которая позволяет мне получить желаемый результат

Вы можете мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...