我正试图为MongoDb编写mapReduce函数,并且在reduce函数内试图从第二个MongoDb数据库查询数据时出现问题。下面是一个示例代码:
var reduceUsers = function(key, values) {
var reducedUser = {
uid: key,
count: 0,
extractBytes: 0
};
var secondDb = db.getSiblingDB("second");
....
}
当我尝试运行mapReduce时,我得到以下错误:
015-09-04T15:50:23.690+0100 E QUERY Error: map reduce failed:{
"errmsg" : "exception: ReferenceError: db is not definedn
所有的代码都在.js文件中,我这样运行它:
> mongo mapReduceTest.js
MapReduce不能访问全局shell对象,如db
。MapReduce作业只能从它运行的一个集合中获取数据。它不能用于聚合来自多个集合的数据(很好的尝试,但MongoDB根本不做join)。无论你想做什么,它都不会这样工作。
当你想建议如何解决导致你进行此解决尝试的实际问题时,请打开一个新问题,详细解释你正在尝试做的事情。