Há uma questão-chave aqui em relação à saída esperada. Não está 100% claro na sua pergunta qual você quer.
Você quer (A) :
{ _id: "document1", value: { mode: 1.0, median: 10.0 } }
{ _id: "document2", value: { mode: 5.0, median: 150.0 } }
... one for each document
... ou você quer (B) , a moda e a mediana em toda a combinação de todas as matrizes.
- Se a resposta for (A) , então Map/Reduce funcionará .
- Se a resposta for (B) , então Map/Reduce provavelmente não funcionará .
Se você planeja fazer (A) , leia atentamente a documentação de M/R e entenda as limitações. Enquanto a opção (A) pode ser um Map/Reduce, também pode ser apenas um grande
for
loop com um upsert
na coleção "resumo" ou mesmo de volta à coleção original. Isso pode ser ainda mais eficiente.