Mongodb MapReduce与大阵列的问题

Mongodb MapReduce与大阵列的问题,mongodb,mapreduce,Mongodb,Mapreduce,我希望有人能帮助解决这个问题。谢谢 我在MYSQL的日志解析器中工作。我在本任务中使用PHP5.310解析mysql日志,并将收集到的信息存储到mongodb中,其结构如下: "_id" : "12345", "Host" : "localhost", "Connect" : "XXXXX@localhost on AUT_IND", "Time_Con" : ISODate("2013-01-21T02:50:08Z"),

我希望有人能帮助解决这个问题。谢谢

我在MYSQL的日志解析器中工作。我在本任务中使用PHP5.310解析mysql日志,并将收集到的信息存储到mongodb中,其结构如下:

        "_id" : "12345",
        "Host" : "localhost",
        "Connect" : "XXXXX@localhost on AUT_IND",
        "Time_Con" : ISODate("2013-01-21T02:50:08Z"),
        "Quit" : "Quit",
        "Time_Quit" : ISODate("2013-01-21T02:50:09Z"),
        "Num_Query" : 2,
        "Query" : [
                "SET NAMES utf8",
                 "SELECT * FROM XX

        ]
我正试图获得整个集合中的前十个查询。我用过这个M/R:

function emit(k, v) {
print("emit");
print(" k:" + k + " v:" + tojson(v));
}
m=

r=

mapReduce db.XXXXX.mapReduce(m,r,{out:“results”})为我提供了正确的结果,除非Num_查询高于3k

例如,我在这个集合中有一个文档的“Num_Query”:116287

因此它有一个包含116287个查询的数组。这就是我做M/R时出错的地方

这里有错误日志:

Fri Feb 8 12:07:00未捕获异常:映射减少失败:{“errmsg”:“异常:_id不能是数组”,“代码”:10099,“确定”:0}

我希望有人能引导我找到正确的解决方案。非常感谢

function () {
this.Query.forEach(function (z) {emit(z, 1);});
}
function (key, values) {
var total = 0;
for (var i in values) {
total += values[i];
}
return total;
}

}