第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于mongodb聚合查詢(xún)的問(wèn)題·?

關(guān)于mongodb聚合查詢(xún)的問(wèn)題·?

qq_遁去的一_1 2018-07-13 19:07:23
純前端一枚,之前沒(méi)有接觸后臺(tái)數(shù)據(jù)庫(kù),現(xiàn)在學(xué)習(xí)mongodb數(shù)據(jù)庫(kù),遇到這樣的一個(gè)情景,建立一個(gè)博客的數(shù)據(jù)庫(kù),有這樣一個(gè)包含所有文章信息的集合,數(shù)據(jù)偽造如下:{ "id" : 1, "name" : "one", "tags" : [ "a", "c", "e" ] } { "id" : 2, "name" : "two", "tags" : [ "e" ] } { "id" : 3, "name" : "three", "tags" : [ "d", "e" ] } { "id" : 4, "name" : "four", "tags" : [ "g", "c", "e", "h" ] } { "id" : 5, "name" : "five", "tags" : [ "a", "c", "d" ] }tags 表示這篇文章所屬的標(biāo)簽類(lèi)型,現(xiàn)在想要查詢(xún)出有多少個(gè)不同的標(biāo)簽類(lèi)型,每個(gè)標(biāo)簽下有多少條數(shù)據(jù),這個(gè)該怎么實(shí)現(xiàn)?目前想到的是用 aggregate 中的 $unwind 將 tags 進(jìn)行拆分,然后再用 $group 進(jìn)行分組統(tǒng)計(jì),但是具體代碼該怎么寫(xiě),或者是有其他更有效的方式,請(qǐng)指教?。?!
查看完整描述

2 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

這是個(gè)很經(jīng)典的統(tǒng)計(jì)問(wèn)題,其實(shí)已經(jīng)不是MongoDB特有的范疇了,對(duì)于其他數(shù)據(jù)庫(kù)來(lái)講也是通用的。
你想的辦法本身是沒(méi)有問(wèn)題的,肯定可以通過(guò)aggregation的$unwind+$group得到你想要的結(jié)果。問(wèn)題在于隨著時(shí)間推移,參與統(tǒng)計(jì)的博客數(shù)量將會(huì)越來(lái)越多,意味著你的統(tǒng)計(jì)語(yǔ)句將越來(lái)越慢。問(wèn)題的關(guān)鍵在于如何限制住每次參與統(tǒng)計(jì)的記錄數(shù)。
從另一個(gè)角度講,博客一般寫(xiě)完就很少有改動(dòng)了,今天統(tǒng)計(jì)昨天的所有博客各屬于哪些標(biāo)簽,跟明天再來(lái)統(tǒng)計(jì)昨天的得到的結(jié)果應(yīng)該是一樣的(假設(shè)沒(méi)有修改的前提下)。所以每次都進(jìn)行統(tǒng)計(jì)其實(shí)是浪費(fèi)。
基于以上這些考慮,你其實(shí)可以每隔一段時(shí)間(比如每天)統(tǒng)計(jì)一次每個(gè)標(biāo)簽都有多少次出現(xiàn),把它們存起來(lái),在需要時(shí)再把這些已經(jīng)聚合過(guò)一次的數(shù)據(jù)再次聚合。這種方式稱(chēng)為預(yù)聚合。
大概的方向是這樣,細(xì)節(jié)的問(wèn)題你可以先自己思考一下。

查看完整回答
反對(duì) 回復(fù) 2018-07-15
  • 2 回答
  • 0 關(guān)注
  • 577 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)