C'è una domanda chiave qui riguardante l'output previsto. Non è chiaro al 100% dalla tua domanda quale desideri.
Vuoi (A) :
{ _id: "document1", value: { mode: 1.0, median: 10.0 } }
{ _id: "document2", value: { mode: 5.0, median: 150.0 } }
... one for each document
... o vuoi (B) , la modalità e la mediana in tutta la combinazione di tutti gli array.
- Se la risposta è (A) , quindi Mappa/Riduci funziona .
- Se la risposta è (B) , quindi Mappa/Riduci probabilmente non funzionerà .
Se hai intenzione di fare (A) , leggere attentamente la documentazione M/R e comprenderne i limiti. Mentre l'opzione (A) può essere una mappa/riduci, può anche essere solo un grande for
loop con un upsert
nella raccolta "riassuntiva" o anche di nuovo nella raccolta originale. Questo potrebbe essere ancora più efficiente.