新聞中心
MongoDB的聚合操作提供了強(qiáng)大的數(shù)據(jù)處理能力,其中之一就是$group操作符可以實(shí)現(xiàn)類(lèi)似SQL中DISTINCT的功能。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了橫峰免費(fèi)建站歡迎大家使用!
$group操作符
在MongoDB中,$group操作符可以對(duì)集合中的文檔進(jìn)行分組,并對(duì)每個(gè)組執(zhí)行聚合操作,它的基本語(yǔ)法如下:
{
$group: {
_id: , // 用于分組的表達(dá)式
: { : }, // 輸出字段1及其累加器
...
: { : } // 輸出字段N及其累加器
}
}
是用于定義分組條件的表達(dá)式,是輸出字段的名稱(chēng),是累加器操作符,是累加器的值。
實(shí)現(xiàn)distinct功能
假設(shè)我們有一個(gè)名為students的集合,包含以下文檔:
| _id | name | class |
| 1 | Alice | A |
| 2 | Bob | B |
| 3 | Carol | A |
| 4 | Dave | B |
| 5 | Eve | A |
我們想找出所有不重復(fù)的班級(jí)名稱(chēng),可以使用以下的聚合查詢(xún):
db.students.aggregate([
{
$group: {
_id: "$class"
}
},
{
$project: {
_id: 0,
distinctClass: "$_id"
}
}
])
這個(gè)查詢(xún)首先使用$group操作符按照class字段進(jìn)行分組,然后使用$project操作符將_id字段重命名為distinctClass,并隱藏原始的_id字段,最終的輸出結(jié)果為:
| distinctClass |
| A |
| B |
這樣我們就實(shí)現(xiàn)了類(lèi)似SQL中DISTINCT的功能,找出了所有不重復(fù)的班級(jí)名稱(chēng)。
新聞名稱(chēng):MongoDB聚合操作——distinct
文章地址:http://www.dlmjj.cn/article/dhgopid.html


咨詢(xún)
建站咨詢(xún)
