MongoDB數(shù)據(jù)庫(kù)去重函數(shù)Distinct用法實(shí)例
MongoDB的distinct方法可以用于檢索指定字段的唯一值,以下是對(duì)MongoDB distinct的闡述:
一、distinct方法的語(yǔ)法
db.collection.distinct( field, query, options )
distinct方法包含三個(gè)參數(shù),field表示要檢索唯一值的字段,query表示檢索時(shí)使用的查詢語(yǔ)句,options包括projection和sort等選項(xiàng)。
二、distinct的基本用法
在collection中使用distinct方法,比如要檢索employees集合中salary字段的唯一值,語(yǔ)句如下:
db.employees.distinct("salary")
執(zhí)行結(jié)果會(huì)返回所有salary字段的不同值。
三、distinct的查詢條件
在distinct方法中使用查詢條件,比如要檢索employees集合中salary字段大于5000的唯一值,語(yǔ)句如下:
db.employees.distinct("salary", { salary: { $gt: 5000 } })
執(zhí)行結(jié)果會(huì)返回所有salary字段大于5000的不同值。
四、distinct的選項(xiàng)
distinct方法中的options參數(shù)可以用來(lái)控制查詢結(jié)果。projection參數(shù)可用于控制查詢結(jié)果中的字段;sort參數(shù)可用于按指定字段排序查詢結(jié)果。
db.employees.distinct("department", {}, { projection: { _id: 0, department: 1 } }) db.employees.distinct("salary", {}, { sort: { salary: 1 } })
以上語(yǔ)句分別表示檢索所有員工的部門字段,不包括_id字段,并按照salary字段升序排列所有salary的唯一值。
五、distinct方法與aggregation框架的結(jié)合使用
distinct方法可以作為aggregation框架中的第一個(gè)階段,用來(lái)檢索指定字段的所有唯一值。例如要檢索employees集合中所有員工的年齡段唯一值:
db.employees.aggregate([ { $group: { _id: "$age" } }, { $project: { age: "$_id", _id: 0 } } ])
以上語(yǔ)句使用了aggregation框架中的$group和$project操作符,其中$group操作符用于將所有員工按照年齡分組,$project操作符用于重新組織查詢結(jié)果,以顯示字段age。
可見(jiàn),aggregation函數(shù)可以做為復(fù)雜靈活的去重操作。
附:mongodb distinct條件查詢
db.item.distinct('itemId',{recordTime:{$gte:'2019-08-05 14:00:00'}}).length
平常我們想要查某個(gè)指標(biāo)有多少個(gè)不同的取值
但是有的時(shí)候,我們還想要先對(duì)整體數(shù)據(jù)有一定選擇之后再去執(zhí)行distinct計(jì)算
上述方式就能夠解決問(wèn)題,
值得注意的是,后邊條件recordTime并沒(méi)有雙引號(hào),否則就會(huì)報(bào)錯(cuò)
官方distinct文檔
總結(jié)
distinct方法是MongoDB中非常有用的查找工具之一,可以用于檢索collection中不同字段中的唯一值,并且可以與Aggregation框架結(jié)合使用。
到此這篇關(guān)于MongoDB數(shù)據(jù)庫(kù)去重函數(shù)Distinct用法的文章就介紹到這了,更多相關(guān)MongoDB去重函數(shù)Distinct內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Node操作MongoDB數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了使用Node操作MongoDB數(shù)據(jù)庫(kù)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01大數(shù)據(jù)環(huán)境下mongoDB為何要加索引淺析
這篇文章主要給大家介紹了關(guān)于大數(shù)據(jù)環(huán)境下mongoDB為何要加索引的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05MongoDB Remove函數(shù)的3個(gè)常見(jiàn)用法
這篇文章主要介紹了MongoDB Remove函數(shù)的3個(gè)常見(jiàn)用法,需要的朋友可以參考下2014-05-05MongoDB 簡(jiǎn)單入門教程(安裝、基本概念、創(chuàng)建用戶)
這篇文章主要介紹了MongoDB 簡(jiǎn)單入門教程(安裝、基本概念、創(chuàng)建用戶)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MongoDB數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2021-03-03