couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Newson <>
Subject Re: Multiple map reduce stages
Date Thu, 20 May 2010 12:42:15 GMT
If it helps, you can only group from the left side of the array. for
['a', 'b', 'c'], group_level=1 is  ['a'], group_level=2 is  ['a', 'b']
and group_level=3 is ['a', 'b', 'c'].


On Thu, May 20, 2010 at 1:25 PM, Kropp, Henning <> wrote:
> Am 20.05.2010 12:25, schrieb Simon Metson:
>> Hi,
>>> I came up with the following solution. Grouping by value (uri) and time
>>> using the group_level=1 and the start and end key like follow:
>>> /_temp_view?group=true&group_level=1&startkey=[1270826004.0]&endkey=[{},1270826011.0]
>>> and simply counting
>>> function(doc) { emit([doc.URI,doc.Time], 1 );
>> Shouldn't your start/end key also include the doc's URI? That way
>> you'd only get the URI you are interested in for the date range that
>> you specify. e.g. &startkey=[document1,
>> 1270826004.0]&endkey=[document1,1270826011.0]. If you switch the view
>> around to emit [doc.Time, doc.URI] as the key you can find all URI's
>> in the time range using &startkey=[1270826004.0,
>> 0]&endkey=[1270826011.0, {}].
>> Cheers
>> Simon
> That should work, but if I change the order of URI and Time in the key I
> am unable to group the result by URI using the group_level 1. And using
> group_level 2 would result in grouping URIs with the same URI *and*
> Time. Unfortunately there seems to be no way to tell exact what part of
> the key to use for grouping, if I am not mistaken. Therefor I have
> thought about a second map stage.
> Thank you!

View raw message