MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Calculer la médiane dans le framework d'agrégation MongoDB

La médiane est quelque peu délicate à calculer dans le cas général, car elle implique de trier l'ensemble de données ou d'utiliser une récursivité avec une profondeur également proportionnelle à la taille de l'ensemble de données. C'est peut-être la raison pour laquelle de nombreuses bases de données n'ont pas d'opérateur médian prêt à l'emploi (MySQL n'en a pas non plus).

La façon la plus simple de calculer la médiane serait avec ces deux déclarations (en supposant que l'attribut sur lequel nous voulons calculer la médiane s'appelle a et nous le voulons sur tous les documents de la collection, coll ):

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

C'est l'équivalent de ce que les gens suggèrent pour MySQL.