У меня есть список документов, который состоит из:
- время
- 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])
}
}
Я не могу найти функцию уменьшения, которая позволяет мне получить желаемый результат
Вы можете мне помочь?