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

Calcola la mediana nel framework di aggregazione MongoDB

La mediana è alquanto difficile da calcolare nel caso generale, perché comporta l'ordinamento dell'intero set di dati o l'utilizzo di una ricorsione con una profondità che è anche proporzionale alla dimensione del set di dati. Questo è forse il motivo per cui molti database non hanno un operatore mediano pronto all'uso (nemmeno MySQL ne ha uno).

Il modo più semplice per calcolare la mediana sarebbe con queste due affermazioni (assumendo che l'attributo su cui vogliamo calcolare la mediana sia chiamato a e lo vogliamo su tutti i documenti della collezione, coll ):

count = db.coll.count();
db.coll.find().sort( {"a":1} ).skip(count / 2 - 1).limit(1);

Questo è l'equivalente di ciò che la gente suggerisce per MySQL.