La forma dell'oggetto che emit dalla tua map la funzione deve essere la stessa dell'oggetto restituito da reduce funzione, come risultato di una reduce può essere reimmesso in reduce durante l'elaborazione di un gran numero di documenti (come in questo caso).
Quindi devi cambiare il tuo emit per emettere documenti come questo:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
e poi aggiorna il tuo reduce funzionare di conseguenza.