在MongoDB MapReduce范围内传递数组

时间:2013-06-10 10:56:31

标签: javascript node.js mongodb mapreduce mongoose

我正在Node.js + Express.js服务器上执行MapReduce执行。

我使用Mongoose作为ODM,我需要将名为_affinities的键值数组传递到map函数全局范围。为此,我目前正在o.scope对象中传递数组:

var o = {}; // Object sent to Mongoose as options

// Scope to pass affinities
o.scope = {
    affs : _affinities,
    test : 'test'
}

但是,在o.map中使用这些值时,它表示affs是一个空数组。但是,如果我尝试记录test,则会显示正确的值。

// Note: this is just a test, I don't need to pass affs & test as the key.
o.map = function() {
    emit({ 
       a : affs, 
       test : test,
       id : this._id 
    }, this.score);
}

我只有一个finalize函数(用于测试),没有reduce个。

o.finalize = function (k, v) 
{
    return v;
}

MyModel.mapReduce(o, callback);

我做错了吗? MongoDB不支持传递数组吗?

0 个答案:

没有答案