Kształt obiektu, który emit
z Twojej map
funkcja musi być taka sama jak obiekt zwrócony z twojego reduce
funkcja, jako wynik reduce
można wrócić do reduce
podczas przetwarzania dużej liczby dokumentów (jak w tym przypadku).
Musisz więc zmienić swój emit
aby emitować dokumenty w ten sposób:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
a następnie zaktualizuj swój reduce
działać odpowiednio.