public void DoMapReduce()
{
string map = @"
function() {
var logEntry = this;
emit(logEntry.Country, { count: 1, size: logEntry.Size });
}";
string reduce = @"
function(key, values) {
var result = {count: 0, size: 0 };
values.forEach(function(value){
result.count += value.count;
result.size += value.size;
});
return result;
}";
string finalize = @"
function(key, value){
value.averageSize = value.size / value.count;
return value;
}";
var collection = database.GetCollection(CollectionName);
var options = new MapReduceOptionsBuilder();
options.SetFinalize(finalize);
options.SetOutput(MapReduceOutput.Inline);
var results = collection.MapReduce(map, reduce, options);
foreach (var result in results.GetResults())
{
Console.WriteLine(result.ToJson());
}
}