La forme de l'objet que vous emit depuis votre map la fonction doit être identique à l'objet renvoyé par votre reduce fonction, comme résultat d'un reduce peut être renvoyé dans reduce lors du traitement d'un grand nombre de documents (comme dans ce cas).
Vous devez donc changer votre emit pour émettre des docs comme ceci :
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
puis mettez à jour votre reduce fonctionner en conséquence.