La forma del objeto que emit
desde tu map
la función debe ser la misma que el objeto devuelto por su reduce
función, como resultado de un reduce
puede retroalimentarse en reduce
al procesar una gran cantidad de documentos (como en este caso).
Entonces necesitas cambiar tu emit
para emitir documentos como este:
{userid:<xyz>, {events:[{adduser: 1}], allEventCount:1}}
{userid:<xyz>, {events:[{login: 1}], allEventCount:1}}
y luego actualice su reduce
funcionar en consecuencia.