Était-ce utile?

La solution

Oui, MapReduce fonctionnerait.Vous pouvez également utiliser des curseurs pour traiter un résultat de requête.Comme:

min = 99999999;
max = -99999999;
sum = 0;
count = 0
db.School.find({}).forEach(function(s) {
    if (s.first.events.first.cost < min)
        min = s.first.events.first.cost;
    if (s.first.events.first.cost > max)
        max = s.first.events.first.cost;
    sum += s.first.events.first.cost;
    ++count;
});

Vous avez maintenant le min et le max et pouvez calculer la moyenne et la moyenne à partir de la somme et du nombre.

Mongodb n'a pas la possibilité de calculer directement les fonctions d'agrégation dans son langage de requête.En fait, cette affirmation n'est pas entièrement vraie, car il existe la fonction count () pour compter le nombre de résultats renvoyés par une requête, et il y a la fonction group ().Mais la fonction de groupe ressemble beaucoup à MapReduce et ne peut pas être utilisée sur des bases de données fragmentées.Si vous êtes intéressé par la fonction de groupe, voir: http://www.mongodb.org / display / DOCS / Aggregation # Aggregation-Group

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top