W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
支持端:小程序 2.7.4, 云函數(shù) 0.8.1, Web
聚合階段。根據(jù)傳入的表達(dá)式,將傳入的集合進(jìn)行分組(group)。然后計(jì)算不同組的數(shù)量,并且將這些組按照它們的數(shù)量進(jìn)行排序,返回排序后的結(jié)果。
sortByCount 的調(diào)用方式如下:
sortByCount(<表達(dá)式>)
表達(dá)式的形式是:$ + 指定字段。請(qǐng)注意:不要漏寫 $ 符號(hào)。
假設(shè)集合 passages 的記錄如下:
{ "category": "Web" }
{ "category": "Web" }
{ "category": "Life" }
下面的代碼就可以統(tǒng)計(jì)文章的分類信息,并且計(jì)算每個(gè)分類的數(shù)量。即對(duì) category 字段執(zhí)行 sortByCount 聚合操作。
db.collection('passages')
.aggregate()
.sortByCount('$category')
.end()
返回的結(jié)果如下所示:Web 分類下有2篇文章,Life 分類下有1篇文章。
{ "_id": "Web", "count": 2 }
{ "_id": "Life", "count": 1 }
假設(shè)集合 passages 的記錄如下:tags 字段對(duì)應(yīng)的值是數(shù)組類型。
{ "tags": [ "JavaScript", "C#" ] }
{ "tags": [ "Go", "C#" ] }
{ "tags": [ "Go", "Python", "JavaScript" ] }
如何統(tǒng)計(jì)文章的標(biāo)簽信息,并且計(jì)算每個(gè)標(biāo)簽的數(shù)量?因?yàn)?nbsp;tags 字段對(duì)應(yīng)的數(shù)組,所以需要借助 unwind 操作解構(gòu) tags 字段,然后再調(diào)用 sortByCount。
下面的代碼實(shí)現(xiàn)了這個(gè)功能:
db.collection('passages')
.aggregate()
.unwind(`$tags`)
.sortByCount(`$tags`)
.end()
返回的結(jié)果如下所示:
{ "_id": "Go", "count": 2 }
{ "_id": "C#", "count": 2 }
{ "_id": "JavaScript", "count": 2 }
{ "_id": "Python", "count": 1 }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: