最近在統(tǒng)計(jì)某一個(gè)時(shí)間段的url去重?cái)?shù),由于數(shù)據(jù)量巨大導(dǎo)致報(bào)錯(cuò),提示:
我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、青銅峽ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的青銅峽網(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的值是存儲(chǔ)執(zhí)行結(jié)果的集合 db.runCommand({"mapreduce":"visit","map":map,"reduce":reduce,"query":{"vtime":{"$gte":1412611200,"$lte":1413907119}},"out":"test.tmp"});
關(guān)于mapreduce的選項(xiàng)解釋如下:
"out":{replace:"collection name"} -- mapreduce輸出結(jié)果會(huì)替換掉原來的collection,collection不存在則創(chuàng)建 "out":{merge:"collection name"} -- 將新老數(shù)據(jù)進(jìn)行合并,新的替換舊的,沒有的添加進(jìn)去 "out":{reduce:"collection name"}-- 存在老數(shù)據(jù)時(shí),在原來的基礎(chǔ)上加新的數(shù)據(jù)(即new value=old value+mapreduce value) "out":{inline:1} -- 不會(huì)創(chuàng)建collection,結(jié)果保存在內(nèi)存里面,只限于結(jié)果小于16MB的情況
當(dāng)前標(biāo)題:mongodb中使用mapreduce進(jìn)行分組統(tǒng)計(jì)
文章網(wǎng)址:http://jinyejixie.com/article16/iiesgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站、靜態(tài)網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)