MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

map/reduce è appropriato per trovare la mediana e la modalità di un insieme di valori per molti record?

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.