You can use the second with group_level=1 and get all the groups at the same time. And you can use _count instead of _sum, so you don't even need to emit any value, just the key.
On Sat, Oct 4, 2014 at 8:24 PM, Boaz Citrin <bcit...@gmail.com> wrote: > Hello, > > My documents contain two fields to maintain group associations, say "group" > holds the group document id, and "associated" holds the date this document > was added to the group. > Now I want to be able to know how many documents were added to a given > group[s] between two given dates. > The challenge is that to be able to filter by dates, I need to have the > date as the key first part. > But I also need the group as the first key part in order to aggregate the > number of group associations. > > So I see two options here: > > 1. > Map: associated, {"group": group} > Reduce: a function that aggregates all values by group, which I assume is > fine as I know the number of groups is relatively small. > (plus configuring reduce_limit=false ...) > > 2. > Map: [group,associated], 1 > Reduce: sum(values) > Here I cannot retrieve multiple groups at once, so I use a request per > desired group. > > Tried the two approaches, with the first one gives faster response. Which > leads me to two questions: > 1. Is there any risk in a reduce function that produces a potentially long > string? > 2. Is there a better way to achieve what I do here? > > Thanks! > > Boaz >