sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoida aggregerade metoder på inbäddade dokument?

Ja, MapReduce skulle fungera. Du kan också använda markörer för att bearbeta ett frågeresultat. Gilla:

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

Du har nu min och max och kan beräkna medelvärdet och medelvärdet från summan och räkningen.

Mongodb har inte möjlighet att beräkna de sammanlagda funktionerna i sitt frågespråk direkt. Egentligen är det påståendet inte helt sant, eftersom det finns funktionen count() för att räkna antalet resultat som returneras av en fråga, och det finns group()-funktionen. Men gruppfunktionen påminner mycket om en MapReduce och kan inte användas på delade databaser. Om du är intresserad av gruppfunktionen, se:http://www. mongodb.org/display/DOCS/Aggregation#Aggregation-Group




  1. Hur unhideIndex() fungerar i MongoDB

  2. Sänk Kafka Stream till MongoDB med PySpark Structured Streaming

  3. iptables blockerar lokal anslutning till mongodb

  4. Mongodb:få bara löv av träd