亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

Mongodb中MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合方法詳解

2020-10-29 18:49:43
字體:
供稿:網(wǎng)友

Mongodb是針對(duì)大數(shù)據(jù)量環(huán)境下誕生的用于保存大數(shù)據(jù)量的非關(guān)系型數(shù)據(jù)庫,針對(duì)大量的數(shù)據(jù),如何進(jìn)行統(tǒng)計(jì)操作至關(guān)重要,那么如何從Mongodb中統(tǒng)計(jì)一些數(shù)據(jù)呢?

在Mongodb中,給我們提供了三種用于數(shù)據(jù)聚合的方式:

(1)簡單的用戶聚合函數(shù);

(2)使用aggregate進(jìn)行統(tǒng)計(jì);

(3)使用mapReduce進(jìn)行統(tǒng)計(jì);

今天我們首先來講講mapReduce是如何統(tǒng)計(jì),在后續(xù)的文章中,將另起文章進(jìn)行相關(guān)說明。

MapReduce是啥呢?以我的理解,其實(shí)就是對(duì)集合中的各個(gè)滿足條件的文檔進(jìn)行預(yù)處理,整理出想要的數(shù)據(jù)然后進(jìn)行統(tǒng)計(jì)得到最終的統(tǒng)計(jì)結(jié)果。其中map函數(shù)用于對(duì)集合中的各個(gè)滿足條件的文檔進(jìn)行預(yù)處理,整理出想要的數(shù)據(jù)。Reduce函數(shù)用于對(duì)整理出的數(shù)據(jù)進(jìn)行處理得到統(tǒng)計(jì)結(jié)果。Map函數(shù)和Reduce函數(shù)都是JavaScript函數(shù)。

首先,我們先構(gòu)造一個(gè)測試數(shù)據(jù)集test,使用js腳本往集合中隨機(jī)插入一組數(shù)據(jù),每條記錄是哪個(gè)人花了多少錢買了什么東西。具體腳本test1.js如下:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;">for( var i=0; i<100; i++){ var rID=Math.floor(Math.random()*10); var price = parseFloat((Math.random()*10).toFixed(2)); if(rID<3){ db.test.insert({"user":"majing","sku":rID,"price":price}); } else if(rID>=3 && rID<5){ db.test.insert({"user":"wufenglei","sku":rID,"price":price}); } else if(rID>=5 && rID<8){ db.test.insert({"user":"wufenglei","sku":rID,"price":price}); } else { db.test.insert({"user":"liyonghu","sku":rID,"price":price}); } }</span></span> 

接下來我們通過在控制臺(tái)執(zhí)行腳本來向數(shù)據(jù)庫插入具體的數(shù)據(jù),具體執(zhí)行指令如下:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;">mongo 127.0.0.1:27017/test J:/test1.js</span></span> 

執(zhí)行之后,通過MongoVUE來查看下具體的數(shù)據(jù),如下所示,數(shù)據(jù)已經(jīng)插入到集合中了:

接下來,我們可以做幾個(gè)簡單的統(tǒng)計(jì)操作了。

(1)統(tǒng)計(jì)不同用戶都買了多少個(gè)商品?編寫js腳本test2.js,將結(jié)果保存到statis1集合中。

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">map=function(){ emit(this.user,1); } reduce=function(key, values){ var count = 0; values.forEach(function(val){count += val}); return count; } db.test.mapReduce(map, reduce, {out:"statics1"});</span></span></span> 

按照剛才執(zhí)行腳本的方式執(zhí)行test2.js,并查看數(shù)據(jù):

從數(shù)據(jù)庫就可以直觀看到統(tǒng)計(jì)數(shù)據(jù)了,若想查看某個(gè)人如majing購買了多少個(gè)商品,直接使用

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">db.statics1.find({"_id":"majing"});</span></span></span></span> 

(2)統(tǒng)計(jì)每個(gè)用戶購買的每個(gè)商品的數(shù)量情況

腳本test3.js如下所示:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">map=function(){ emit({user:this.user,sku:this.sku},1); } reduce=function(key, values){ var count = 0; values.forEach(function(val){count += val}); return count; } db.test.mapReduce(map, reduce, {out:"statics2"});</span></span></span> 

按照剛才執(zhí)行腳本的方式執(zhí)行test3.js,并查看數(shù)據(jù):

總共返回了10條記錄。此時(shí)如果我們想查找某個(gè)用戶購買商品的情況,可以使用下面的查詢方法:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">db.statics2.find({"_id.user":"majing"});</span></span></span> 

如果我們想查找某個(gè)用戶購買某個(gè)商品的情況,可以使用下面的查詢方法:

(3)統(tǒng)計(jì)每個(gè)用戶購買商品的總量及花費(fèi)的總金額

腳本test4.js如下所示:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">map=function(){ emit({user:this.user},{totalprice:this.price,count:1}); } reduce=function(key, values){ var res = {totalprice:0.00,count:1}; values.forEach(function(val){res.totalprice += val.totalprice;res.count+=val.count;}); return res; } db.test.mapReduce(map, reduce, {out:"statics3"});</span></span></span> 

按照剛才執(zhí)行腳本的方式執(zhí)行test4.js,并查看數(shù)據(jù):

(4)統(tǒng)計(jì)每個(gè)用戶購買商品的平均價(jià)錢

在這個(gè)情景下,我們需要用到說道m(xù)apReduce里的另一個(gè)參數(shù)finalize,該參數(shù)是一個(gè)javascript腳本函數(shù),用于對(duì)reduce后的集合進(jìn)行一個(gè)后期處理操作。

執(zhí)行腳本test5.js,具體如下所示:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">map=function(){ emit({user:this.user},{totalprice:this.price,count:1}); } reduce=function(key, values){ var res = {totalprice:0.00,count:1,average:0}; values.forEach(function(val){res.totalprice += val.totalprice;res.count+=val.count;}); return res; } finalizeFunc=function(key,reduceResult){ reduceResult.totalprice=(reduceResult.totalprice).toFixed(2); reduceResult.average=(reduceResult.totalprice/reduceResult.count).toFixed(2); return reduceResult; } db.test.mapReduce(map, reduce, {out:"statics4",finalize:finalizeFunc});</span></span></span> 

執(zhí)行之后查看得到的數(shù)據(jù),具體如下所示,顯示了總價(jià)錢,商品數(shù)量和商品單價(jià)。

如果想查找某個(gè)人的,可以和上面的查詢方法一樣,使用find()方法進(jìn)行查詢:

<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;"><span style="font-size:18px;">db.statics4.find({"_id.user":"majing"});</span></span></span> 

以上通過4個(gè)簡單的例子對(duì)Mongodb中的MapReduce進(jìn)行了簡單的說明,當(dāng)然MapReduce功能很強(qiáng)大,大家如果想知道其他高級(jí)的使用方法,可以到Mongodb的官網(wǎng)進(jìn)行查閱和學(xué)習(xí),網(wǎng)址為

https://docs.mongodb.com/manual/reference/method/db.collection.mapReduce/ 謝謝。

以上所述是小編給大家介紹的Mongodb中MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合方法詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品www在线观看| 91福利在线视频| 日韩精品中文字幕视频在线| 国产精美视频| 欧美一区二区中文字幕| 麻豆亚洲av熟女国产一区二| 欧美在线国产| 国产精品福利在线播放| 久久久久久久久电影| 精品国产一区二区三区不卡蜜臂| 久久久久久久久久网站| 超碰97久久国产精品牛牛| 蜜桃视频久久一区免费观看入口| 亚洲 自拍 另类小说综合图区| 99久免费精品视频在线观78| av7777777| 欧美在线观看日本一区| 欧洲毛片在线视频免费观看| 九九热视频免费观看| 亚洲综合精品久久| 亚洲欧美日本一区二区三区| 成人午夜电影久久影院| 蜜桃av麻豆av天美av免费| 国产调教一区二区三区| 国产精品爽爽久久| 精品产品国产在线不卡| 老司机免费在线视频| 欧美午夜性春猛xxxx| 中文字幕精品无码一区二区| 免费在线观看的电影网站| 免费av手机在线观看| 巨大荫蒂视频欧美大片| 成人av网址在线| 欧美一级大片在线视频| 日本高清中文字幕二区在线| 国产91久久久久| 久久不卡国产精品一区二区| 97久久精品人人澡人人爽缅北| 亚洲精品1区2区3区| 国内欧美视频一区二区| 免费在线观看污| 西野翔中文久久精品国产| 91搞黄在线观看| 亚洲第一二区| 九九热精品视频在线| 国产一区二区高清| 欧美成人bangbros| 国产视频视频一区| 国产二区视频在线播放| 国产精品一区二区中文字幕| 国产精品熟妇一区二区三区四区| 国产69精品一区二区亚洲孕妇| 91吃瓜在线观看| 日本性视频网站| 日韩欧美一区二区三区四区| gogogo高清在线观看免费完整版| 国产精品xxx电影| 欧美日韩精品免费观看视频完整| 一本大道综合伊人精品热热| 欧美伦理影院| 亚洲激情 国产| 亚洲а∨天堂久久精品喷水| 男人c女人视频| 国产91在线视频观看| 97视频在线免费播放| www.国产在线视频| 亚洲色图15p| 国偷自产av一区二区三区| 欧洲杯半决赛直播| 亚洲精品www久久久| 成人在线免费观看视视频| 精品日本一区二区三区| 日日夜夜精品免费| 国产成人成网站在线播放青青| 欧美性在线观看| 亚洲乱码一区二区| 国产精品mv在线观看| 欧美精品乱码久久久久久按摩| 在线尤物九色自拍| 免费国产羞羞网站美图| 国产女同性恋一区二区| 国产精品v欧美精品v日本精品动漫| 欧美黑人性受xxxx精品| 91淫黄看大片| 日韩精品91| fc2成人免费人成在线观看播放| 中文字幕在线不卡一区| 在线观看你懂的视频| 亚洲国产中文字幕在线视频综合| 久久一日本道色综合| 亚洲国产精品成人av| 久久精品人人做人人爽| 麻豆网站在线免费观看| 91精品国产综合久久精品麻豆| 精品国产乱码久久久久久老虎| 国产小视频在线高清播放| 欧美夫妻性生活视频| 精品无码一区二区三区的天堂| 亚洲国产av一区二区三区| 午夜福利123| 91精品国产麻豆国产自产在线| 欧美性猛交一区二区三区| 国产又黄又猛又粗又爽的视频| 中文在线资源在线| 日本精品视频网站| 国产精品小说在线| 国产激情视频在线观看| 亚洲综合色一区| 成人深夜福利app| 五月婷婷丁香激情| 精品动漫一区二区三区在线观看| 一区一区三区| 中文字幕第24页| 久久精品亚洲乱码伦伦中文| 97影视大全免费追剧大全在线观看| 日韩欧美国产成人一区二区| 天海翼中文字幕| 亚洲女人视频| 亚洲乱妇老熟女爽到高潮的片| 在线观看视频一区二区三区| 国产精品成人观看视频国产奇米| 人妻少妇偷人精品久久久任期| 亚洲激情文学| 亚欧精品在线| 欧美日韩一区二区在线播放| 自拍av一区二区三区| 天天躁日日躁狠狠躁欧美| 亚洲最大福利网| 国产美女18xxxx免费视频| www久久久久久| 一区二区视频在线观看| 日本免费久久高清视频| 国产成人免费观看| 免费成人动漫| 精品福利在线观看| 久热精品在线| 三级视频中文字幕| 日本熟妇成熟毛茸茸| 国产精品免费视频一区二区| 992tv在线成人免费观看| 黄色动漫在线免费观看| 色老太综合网| 国产午夜一区二区三区| 亚洲免费资源| 精品日韩一区二区| 日韩精品视频在线观看视频| 亚洲一区二区三区免费| 日本黄色www| 色一区二区三区| 国产对白在线| 黄色一级片在线| 亚洲欧美一区二区三区情侣bbw| 手机看片1024日韩| 国产黄色网址在线观看| 日本aa在线观看| 中文字幕资源网| 国产精品美女久久久久久久久| 欧美高清一级片在线| 色影院视频在线| 亚洲欧美电影一区二区| 天干夜夜爽爽日日日日| 蜜桃视频一区二区三区| 精品自拍视频| 亚洲人成网www| 国产伦精品一区二区三区四区视频| 欧美日韩成人在线一区| 国产又大又黄又爽| 免费在线观看成年人视频| 97色成人综合网站| 天堂中文av在线资源库| 中文字幕在线播放视频| 国产精品美女在线播放| 欧美经典影片视频网站| 欧美一级片免费看| 国产精品免费区二区三区观看| 一级毛片久久久| 最近中文字幕mv第三季歌词| 五月婷婷视频在线观看| 国产深夜精品福利| 日本xxxxxxx免费视频| 久久精品国产77777蜜臀| 91传媒视频在线播放| 国产精品2018| 精品国产午夜| 久久久久麻豆v国产精华液好用吗| 给我免费观看片在线电影的| 国产av天堂无码一区二区三区| 大地资源网在线观看免费官网| av网页在线| 午夜成人免费视频| 色青青草原桃花久久综合| 欧美婷婷在线| 国产精品区二区三区日本| 精品国产免费一区二区三区香蕉| 亚洲精品久久久久久宅男| 亚洲一区二区三区xxx视频| 国产色无码精品视频国产| 国产精品无码久久久久| 久草在线资源站资源站| 国产又黄又猛的视频| 精品视频一区二区观看| 精东粉嫩av免费一区二区三区| 男人添女荫道口图片| 蜜桃久久精品一区二区| 欧美96在线丨欧| 亚洲一区激情| 91动漫在线看| 亚洲人成网站777色婷婷| 爱啪视频在线观看视频免费| 中文字幕一区免费| 国产欧美激情视频| 亚洲精品第一国产综合野草社区| 热re99久久精品国产66热| 国产亚洲精品久久久久久牛牛| 成人免费视频在线观看超级碰| 亚洲国产精品一区二区久久| 黄色片网站在线观看| 国产资源在线免费观看| 夜夜操com| 亚洲丝袜美腿综合| 国产午夜视频在线观看| 亚洲欧洲日韩国产| 黄色永久免费网站| 日韩色级片先锋影音| 色婷婷激情一区二区三区| 黄页视频在线播放| 国产一区二区视频免费观看| 国产高清视频一区| 三级在线观看网站| 亚洲国产精品va在看黑人| 欧美日产在线观看| 91视频免费入口| 欧美性猛交视频| 国产精品国产三级国产专区51| 亚洲а∨天堂久久精品喷水| 国产99久久久久久免费看农村| 无码一区二区精品| 中文字幕一区二区人妻视频| 国产欧美日韩综合一区在线观看| 激情欧美成人久久综合小说| 三级a性做爰视频| 成人黄色a级片| 国产精品毛片va一区二区三区| 久久婷婷综合中文字幕| 亚洲精品男同| 桃花网日韩影视在线观看视频| 国产欧美日韩综合一区在线播放| 国产精品香蕉一区二区三区| 久久黄色免费网站| 中文字幕在线观看你懂的| 国产精品无码天天爽视频| 97精品人妻一区二区三区| 欧美视频三区| 老司机一区二区三区| 久久精品视频7| 亚洲一区二区免费看| 久久亚洲精品国产| 欧美精品色一区二区三区| 久久精品视频8| 中文在线аv在线| 开心九九激情九九欧美日韩精美视频电影| 丰满大乳国产精品| 77777_亚洲午夜久久多人| 日本视频免费一区| 一二三区精品视频| 伊人激情综合网| 欧美18一14sex性处hd| 久久一区二区视频| 高清无码一区二区在线观看吞精| 欧美黑人一区二区| 精品人妻伦一二三区久久| 欧美色视频在线观看| 国产精品久久久视频| 久久久综合网站| 欧美女子与性| 亚洲一级片在线播放| 黄网站app在线观看大全免费视频| 亚洲精品视频久久| 一区二区三区四区精品| 日韩亚洲欧美高清| 97在线视频免费观看完整版| 欧美丰满熟妇xxxxx| 成年人福利视频| 久久久精品国产一区二区| 精品综合免费视频观看| 久久国产精品亚洲va麻豆| 国产精品成久久久久| 中文字幕有码在线| 麻豆av在线免费观看| 日韩在线www| 欧美一区二区视频免费观看| 一级特黄aaa| 久久一区二区视频| www浪潮av99com| 久久久久亚洲av无码专区首jn| 99热这里只有精品在线观看| 亚洲成av人片在线观看| 亚欧精品在线视频| 九色porny91| 亚洲色图视频在线观看| 欧美videos极品另类| 五月天电影免费在线观看一区| 国产美女作爱全过程免费视频| 黄色的视频在线免费观看| 成人观看免费完整观看| 亚洲综合中文字幕68页| 在线播放毛片| 亚洲欧洲午夜一线一品| 国产xxxx在线观看| 欧美久久综合性欧美| 成人毛片一区二区| 久久中文字幕免费| 看全色黄大色大片免费久久久| 日本免费成人网| 新91视频在线观看| 国产精品.www| 在线观看美女网站大全免费| 亚洲最黄网站| 伊人成人在线观看| 国产激情视频一区二区在线观看| 99九九电视剧免费观看| 激情四射综合网| 日韩av电影在线免费播放| 国产精品主播直播| 免费白浆视频| 美女视频一区二区| 亚洲精选视频在线| 精精国产xxx在线视频app|