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.