真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mongodb中使用mapreduce進行分組統(tǒng)計

最近在統(tǒng)計某一個時間段的url去重數(shù),由于數(shù)據(jù)量巨大導致報錯,提示:

我們提供的服務有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、青銅峽ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的青銅峽網(wǎng)站制作公司

distinct failed: {
"errmsg" : "exception: distinct too big, 16mb cap",
"code" : 17217,
"ok" : 0
} at src/mongo/shell/collection.js:1108

最終通過mapreduce來解決如下:

//定義map函數(shù)
map=function(){
    emit(this.url,{"count":1});
}
//定義reduce函數(shù)
reduce=function(key,values){
    var total=0;
    for(var i=0; i < values.length; i++){
        total+=values[i].count;
    }
    return {count:total}
}
//執(zhí)行mapreduce函數(shù),其中out的值是存儲執(zhí)行結(jié)果的集合
db.runCommand({"mapreduce":"visit","map":map,"reduce":reduce,"query":{"vtime":{"$gte":1412611200,"$lte":1413907119}},"out":"test.tmp"});

關于mapreduce的選項解釋如下:

"out":{replace:"collection name"} -- mapreduce輸出結(jié)果會替換掉原來的collection,collection不存在則創(chuàng)建
"out":{merge:"collection name"} -- 將新老數(shù)據(jù)進行合并,新的替換舊的,沒有的添加進去
"out":{reduce:"collection name"}-- 存在老數(shù)據(jù)時,在原來的基礎上加新的數(shù)據(jù)(即new value=old value+mapreduce value)
"out":{inline:1} -- 不會創(chuàng)建collection,結(jié)果保存在內(nèi)存里面,只限于結(jié)果小于16MB的情況

文章標題:mongodb中使用mapreduce進行分組統(tǒng)計
分享網(wǎng)址:http://weahome.cn/article/iiesgg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部