MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB MapReduce :ne fonctionne pas comme prévu pour plus de 1 000 enregistrements

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.