sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Métodos agregados mongoide en documentos incrustados?

Sí, MapReduce funcionaría. También puede usar cursores para procesar el resultado de una consulta. Me gusta:

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;
});

Ahora tiene el mínimo y el máximo y puede calcular el promedio y la media a partir de la suma y el conteo.

Mongodb no tiene la capacidad de calcular las funciones agregadas en su lenguaje de consulta directamente. En realidad, esa afirmación no es del todo cierta, ya que existe la función count() para contar el número de resultados devueltos por una consulta, y existe la función group(). Pero la función de grupo se parece mucho a MapReduce y no se puede usar en bases de datos fragmentadas. Si está interesado en la función de grupo, consulte:http://www. mongodb.org/display/DOCS/Aggregation#Aggregation-Group