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.