MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Calcular a mediana na estrutura de agregação do MongoDB


A mediana é um pouco complicada de calcular no caso geral, porque envolve a classificação de todo o conjunto de dados ou o uso de uma recursão com uma profundidade que também é proporcional ao tamanho do conjunto de dados. Essa talvez seja a razão pela qual muitos bancos de dados não possuem um operador mediano pronto para uso (o MySQL também não possui um).

A maneira mais simples de calcular a mediana seria com essas duas instruções (assumindo que o atributo no qual queremos calcular a mediana é chamado de a e queremos isso em todos os documentos da coleção, coll ):
count = db.coll.count();
db.coll.find().sort( {"a":1} ).skip(count / 2 - 1).limit(1);

Isso é o equivalente ao que as pessoas sugerem para o MySQL.