如果我将一个带有未定义值的变量放入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()时,未定义的值是否自动转换为空值?
答案 0 :(得分:1)
是的undefined
值会转换为mongodb v8 engine中的null
值。
这样做的原因是为了保持与旧的Spider Monkey JS引擎的向后兼容性,而不是破坏依赖于该行为的现有代码。