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