Вы можете использовать опцию scope
для отправки параметров для отображения / уменьшения / завершения функций
согласно документ
db.runCommand(
{ mapreduce : <collection>,
map : <mapfunction>,
reduce : <reducefunction>
[, query : <query filter object>]
[, sort : <sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces>]
[, limit : <number of objects to return from collection>]
[, out : <see output options below>]
[, keeptemp: <true|false>]
[, finalize : <finalizefunction>]
[, scope : <object where fields go into javascript global scope >]
[, jsMode : true]
[, verbose : true]
}
);
scope - может передавать переменные, доступ к которым можно получить из
карта / уменьшить / завершения.
проверить использование с здесь
выдержка из ссылки
res = t.mapReduce( m , r , { out : "mr5_out" , scope : { xx : 1 } } );
У меня нет большого опыта работы с драйвером c #, но на основе приведенного выше примера вы можете jsonify ваш объект и назначить его для области. Это сделает трюк
Надеюсь, это поможет