gpt4 book ai didi

MongoDB MapReduce : Global variables within map function instance?

转载 作者:IT老高 更新时间:2023-10-28 13:22:18 26 4
gpt4 key购买 nike

我在 MongoDB 中编写了 MapReduce,并希望使用全局变量作为缓存来写入/读取。我知道不可能有全局变量 across 映射函数实例 - 我只想要一个全局变量 within 每个函数实例。这种类型的功能存在于 Hadoop 的 MapReduce 中,所以我期待它存在于 MongoDB 中。但以下似乎不起作用:

var cache = {}; // Does not seem to work!
function () {
var hashValue = this.varValue1 + this.varValue2;
if(typeof(cache[hashValue])!= 'undefined') {
// Do nothing, we've processed at least one input record with this hash
} else {
// Process the input record
// Cache the record
cache[hashValue] = '1';
}
}

这在 MongoDB 的 MapReduce 实现中是不允许的,还是我在 JavaScript 中做错了什么(在 JS 中没有经验)?

最佳答案

docs ,我发现以下内容:

db.runCommand(
{ mapreduce : <collection>,
map : <mapfunction>,
reduce : <reducefunction>
[, scope : <object where fields go into javascript global scope >]
}
);

我认为“范围”变量是您所需要的。

有一个测试/示例on Github使用“范围”变量。

我还是新手,但希望这足以让你开始。

关于MongoDB MapReduce : Global variables within map function instance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com