在Mongoose Map函数中没有拾取的值closures

我正在尝试创build一个dynamic映射函数 – 即使用一个任意字段来聚合。 我以为我可以使用闭包,但它不工作 – 我得到一个错误,说明等等没有定义。

我的testing代码 –

o.map = (function(){ var blah = 'skill'; var mapIt = function() { for (var idx = 0; idx < this[blah].length; idx++) { var key = this.skill[idx]; var val = 1; emit(key, val); } } return mapIt })() 

问候,肖恩

所以map函数实际上是通过函数toString (以源代码forms)通过线传送到mongodb本身(不是节点)内执行的。 因此,这是行不通的。 这是scope选项的用途。 任何需要作为上下文/参数/作用域提供给map / reduce作业的数据都需要在scope对象中设置。

看起来像你必须手动设置范围 –

o.scope = {'blah':blah};