Aquí hay una pregunta clave con respecto al resultado esperado. No está 100 % claro a partir de tu pregunta cuál quieres.
¿Quieres (A) :
{ _id: "document1", value: { mode: 1.0, median: 10.0 } }
{ _id: "document2", value: { mode: 5.0, median: 150.0 } }
... one for each document
... o quieres (B) , la moda y la mediana en toda la combinación de todas las matrices.
- Si la respuesta es (A) , entonces Map/Reduce funcionará .
- Si la respuesta es (B) , entonces Map/Reduce probablemente no funcionará .
Si planeas hacer (A) , lea atentamente la documentación de M/R y comprenda las limitaciones. Mientras que la opción (A) puede ser un Map/Reduce, también puede ser un gran for
bucle con un upsert
en la colección "resumen" o incluso de vuelta a la colección original. Esto puede ser aún más eficiente.