Couchdb map / reduce the number of filters by date

I have a map reduction setup. Now this code works fine:

function(doc) {
    if (doc.type == 'test'){
        if(doc.trash != 1){
                for (var id in doc.items) { 
                emit([id,doc.items[id].name], 1);
            }
        }
    }
}

function(keys,prices){
    return (keys, sum(prices));
}

I get a refund, and when using the group parameter it completely compacts everything.

My problem / question, I want to add a third key .... DATE, so I can only shorten entries from certain dates. For example:

function(doc) {
    if (doc.type == 'test'){
        if(doc.trash != 1){
                for (var id in doc.items) { 
                emit([date,id,doc.items[id].name], 1);
            }
        }
    }
}

, , , id .. , group_level , 2 , doesn 't , afaik, group_level . emit, , .

:

{"key":["2012-03-13","356752b8a5f6871f3","Apple"],"value":1},
{"key":["2012-03-20","123752b8a76986857","Pear"],"value":1},
{"key":["2012-04-12","3013531de05871194","Grapefruit"],"value":1},
{"key":["2012-04-12","356752b8a5f6871f3","Apple"],"value":1},

, APPLE , . , DATE , .

, ?

+4
1

, , group_level, start_key end_key.

Eg. startkey=[1, "someid"] endkey=[1,"someid",{}] group_level=2

1 (, ), "someid" . , id , , , , . ID - , , , . , . "" ID...

1

:

startkey=[1] endkey=[5,{}] group_level=2

, 1 5, , .. apples, oranges .. . yyyymmdd, 20140624 . , ,

startkey=[20140601] endkey=[20140624,{}] group_level=2

, , . "" , , .

startkey=[20140601, "someid"] endkey=[20140624, "someid",{}] group_level=3

group_level=3, . , - , .

2

, , , . group_level=1 group_level=2. , group_level=2 . , , , 2 . ... , , , , 2 - .

, , - . . erlang javascript.

_sum

?

, .., .

+5

Source: https://habr.com/ru/post/1545443/


All Articles