私は次のようなイベントのコレクションを持っています
{
_id: BSONID
name: "event_name",
values: {a: 10, b: 1000, c: 50}
}
mapReduceを使用しようとしています
map = function() {
return emit([this.name, this.values['a']], this.values['b']);
}
reduce = function(key, values) {
// stuff
}
collection.mapReduce(map, reduce, { out: { inline: 1 } }, callback);
ただし、マップする値を動的に変更できるようにしたいと思います。本質的に、私は持っていたいです
var key = 'a';
var value = 'b';
map = function ()
{
return emit([this.name, this.values[key]], this.values[value]);
}
問題は、実行コンテキストがmongodbに渡されないことです。関数に文字列を使用することに依存しないソリューションはありますか?