De vorm van het object dat u emit van je map functie moet hetzelfde zijn als het object dat wordt geretourneerd door uw reduce functie, als de resultaten van een reduce kan teruggekoppeld worden naar reduce bij het verwerken van grote aantallen documenten (zoals in dit geval).
U moet dus uw emit wijzigen om documenten als volgt uit te zenden:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
en werk vervolgens uw reduce bij dienovereenkomstig functioneren.