はい、MapReduceは機能します。カーソルを使用してクエリ結果を処理することもできます。いいね:
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;
});
これで最小値と最大値が得られ、合計とカウントから平均と平均を計算できます。
Mongodbには、クエリ言語で集計関数を直接計算する機能はありません。実際には、クエリによって返された結果の数をカウントするcount()関数と、group()関数があるため、このステートメントは完全には真ではありません。ただし、グループ関数はMapReduceによく似ており、シャーディングされたデータベースでは使用できません。グループ機能に関心がある場合は、 http://wwwを参照してください。 mongodb.org/display/DOCS/Aggregation#Aggregation-Group