mongodb - mapReduce()scope - 未定义的值被转换为空值

时间:2013-08-21 09:23:26

标签: mongodb null mapreduce undefined

如果我将一个带有未定义值的变量放入mapReduce()的“scope”参数中,那么map函数将接收一个带空值的变量(而不是未定义的值)。这是对的吗?

例如(“mongo”命令的javascript骨架):

db.mycol.mapReduce(
                        f_map,
                        f_reduce,
                        {
                            scope: { myvar:   undefined}
                        }
                  );

function f_map()
{
    print("myvar: " + myvar);
}

这会将“myvar:null”(而不是“myvar:undefined”)打印到服务器日志中(进入replicaset成员日志)。通过mapReduce()时,未定义的值是否自动转换为空值?

1 个答案:

答案 0 :(得分:1)

是的undefined值会转换为mongodb v8 engine中的null值。

这样做的原因是为了保持与旧的Spider Monkey JS引擎的向后兼容性,而不是破坏依赖于该行为的现有代码。