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

Comment changer la structure des résultats de réduction de carte de MongoDB ?

MapReduce ne renvoie que les documents de la forme {_id:some_id, value:some_value}

"some_value" ne doit pas nécessairement être un document intégré, mais dans la plupart des cas, c'est pour permettre à plusieurs variables d'être calculées par la fonction Map Reduce. Les documents renvoyés par la fonction Reduce doivent être sous la même forme qu'ils sont entrés, car la fonction Reduce peut être exécutée à plusieurs reprises pour toute valeur _id donnée.

Pour une étape par étape du fonctionnement de Map Reduce, veuillez consulter la section "Extras" de la recette MongoDB Cookbook intitulée "Finding Max And Min Values ​​with Versioned Documents" http://cookbook.mongodb.org/patterns/finding_max_and_min/ Cela devrait permettre de mieux comprendre le fonctionnement de Map Reduce et pourquoi la sortie doit être au format {_id:some_id, value:some_value}

Il est possible de faire une réduction de carte incrémentielle, qui fusionnera les résultats de plusieurs fonctions de réduction de carte. http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-IncrementalMapreduce

Enfin, il n'est actuellement pas possible d'accéder à plusieurs collections à la fois avec Map Reduce. Il existe une demande de fonctionnalité pour cette fonctionnalité, mais il n'est pas prévu qu'elle soit ajoutée aux versions à venir.
https://jira.mongodb.org/browse/SERVER-970