sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB MapReduce:no funciona como se esperaba para más de 1000 registros

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.