Я хочу создать представление в cb, которое будет отображать некоторые данные на основе ввода диапазона дат.
У меня вопрос: как отличить поле от данных? Вот мой код карты:
function (doc, meta) {
if(!doc.clipGeneration.fromCache){
var eiid = doc.clipGeneration.batchId;
if (eiid == null){
eiid = "API";
}
if ( !(doc.clipGeneration.externalId.indexOf("API_INTERVAL_TEST")>=0) ) {
emit([doc.clipGeneration.clipStyle, eiid,doc.eventOccurenceTimeStamp[0], doc.eventOccurenceTimeStamp[1], doc.eventOccurenceTimeStamp[2],doc.eventOccurenceTimeStamp[3]], doc.insertRawTimestamp);
emit([doc.clipGeneration.clipStyle, "ALL",doc.eventOccurenceTimeStamp[0], doc.eventOccurenceTimeStamp[1], doc.eventOccurenceTimeStamp[2],doc.eventOccurenceTimeStamp[3]], doc.insertRawTimestamp);
emit([doc.eventOccurenceTimeStamp[0], doc.eventOccurenceTimeStamp[1], doc.eventOccurenceTimeStamp[2],doc.clipGeneration.clipStyle], doc.insertRawTimestamp);
}
}
}
Уменьшение равно _count, а фильтры, например, следующие:
startkey: [2015,1,1, null]
endkey: [2015,1,31, "\ uffff"]
Результат соответствует ожидаемому диапазону дат:
{"key":[2015,1,11,"5001188"],"value":1},
{"key":[2015,1,12,"100022"],"value":5},
{"key":[2015,1,12,"155"],"value":11},
{"key":[2015,1,13,"100022"],"value":9},
{"key":[2015,1,13,"155"],"value":6},
{"key":[2015,1,13,"5001159"],"value":1},
{"key":[2015,1,13,"5001190"],"value":3},
{"key":[2015,1,14,"100022"],"value":12},
{"key":[2015,1,14,"5001194"],"value":1},
{"key":[2015,1,15,"100022"],"value":11},
{"key":[2015,1,16,"100022"],"value":10},
{"key":[2015,1,18,"100022"],"value":8},
{"key":[2015,1,18,"5001096"],"value":6},
{"key":[2015,1,18,"5001194"],"value":3}
Но, как вы видите, "100022" повторяется много раз, как я могу сделать что-то вроде отдельного в sql, чтобы оно отображалось только один раз?
Спасибо