Database Reference
In-Depth Information
mongo/reduce_1.js
reduce = function (key, values) {
var total = 0;
for ( var i=0; i<values.length; i++) {
total += values[i].count;
}
return { count : total };
}
results = db.runCommand({
mapReduce: 'phones' ,
map:
map,
reduce:
reduce,
out:
'phones.report'
})
Da wir den Namen der Collection über den out -Parameter festgelegt haben
( out : 'phones.report' ), können wir das Ergebnis abfragen wie jede ande-
re Collection auch. Wir haben einen View entwickelt, der auch in der show
tables -Liste zu finden ist.
> db.phones.report.find({ ' _ id.country' : 8})
{
" _ id" :{ "digits" :[0,1,2,3,4,5,6], "country" :8},
"value" :{ "count" :19}
}
{
" _ id" :{ "digits" :[0,1,2,3,5], "country" :8},
"value" :{ "count" :3}
}
{
" _ id" :{ "digits" :[0,1,2,3,5,6], "country" :8},
"value" :{ "count" :48}
}
{
" _ id" :{ "digits" :[0,1,2,3,5,6,7], "country" :8},
"value" :{ "count" :12}
}
has more
Geben Sie it ein, um die Iteration über die Ergebnisse fortzusetzen. Beach-
ten Sie, dass die eindeutig emittierten Schlüssel unter dem Feld _ id liegen
und dass alle vom Reducer zurückgelieferten Daten unter dem Feld value zu
finden sind.
Soll der Mapreducer einfach nur das Ergebnis anstelle der Collection ausge-
ben, können Sie den out -Wert auf { inline : 1 } setzen, denken Sie aber
daran, dass die Größe der Ergebnismenge begrenzt ist. Bei Mongo 2.0 liegt
diese Grenze bei 16MB.
 
Search WWH ::




Custom Search