I wrote a mapreduce function where the records are emitted in the following format
{userid:, {event:adduser, count:1}}
{userid:, {event:log
The shape of the object you emit
from your map
function must be the same as the object returned from your reduce
function, as the results of a reduce
can get fed back into reduce
when processing large numbers of docs (like in this case).
So you need to change your emit
to emit docs like this:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
and then update your reduce
function accordingly.