0

如果我将具有未定义值的变量放入 mapReduce() 的“范围”参数中,则 map 函数将接收具有空值(而不是未定义值)的变量。那是对的吗?

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

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

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

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

4

1 回答 1

1

是的,值在 mongodb 的v8 引擎undefined中被翻译成值。null

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

于 2013-08-21T11:26:01.337 回答