Mongodb-MapReduce大数组的问题

时间:2013-02-11 08:50:41

标签: 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"),
        "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 =

function () {
this.Query.forEach(function (z) {emit(z, 1);});
}

r =

function (key, values) {
var total = 0;
for (var i in values) {
total += values[i];
}
return total;
}

}

地图减少db.XXXXX.mapReduce(m,r,{out:“results”})给我正确的结果,除非Num_queries高于3k。

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

所以它有一个包含116287个查询的数组。我在这里,当我做M / R时出现错误。

这里有错误日志:

2月8日星期五12:07:00未捕获异常:map reduce failed:{“errmsg”:“exception:_id不能是数组”,“code”:10099,“ok”:0}

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

0 个答案:

没有答案