MongoDB數(shù)據(jù)庫去重函數(shù)Distinct用法實例
MongoDB的distinct方法可以用于檢索指定字段的唯一值,以下是對MongoDB distinct的闡述:
一、distinct方法的語法
db.collection.distinct( field, query, options )
distinct方法包含三個參數(shù),field表示要檢索唯一值的字段,query表示檢索時使用的查詢語句,options包括projection和sort等選項。
二、distinct的基本用法
在collection中使用distinct方法,比如要檢索employees集合中salary字段的唯一值,語句如下:
db.employees.distinct("salary")執(zhí)行結(jié)果會返回所有salary字段的不同值。
三、distinct的查詢條件
在distinct方法中使用查詢條件,比如要檢索employees集合中salary字段大于5000的唯一值,語句如下:
db.employees.distinct("salary", { salary: { $gt: 5000 } })執(zhí)行結(jié)果會返回所有salary字段大于5000的不同值。
四、distinct的選項
distinct方法中的options參數(shù)可以用來控制查詢結(jié)果。projection參數(shù)可用于控制查詢結(jié)果中的字段;sort參數(shù)可用于按指定字段排序查詢結(jié)果。
db.employees.distinct("department", {}, { projection: { _id: 0, department: 1 } })
db.employees.distinct("salary", {}, { sort: { salary: 1 } })以上語句分別表示檢索所有員工的部門字段,不包括_id字段,并按照salary字段升序排列所有salary的唯一值。
五、distinct方法與aggregation框架的結(jié)合使用
distinct方法可以作為aggregation框架中的第一個階段,用來檢索指定字段的所有唯一值。例如要檢索employees集合中所有員工的年齡段唯一值:
db.employees.aggregate([
{ $group: { _id: "$age" } },
{ $project: { age: "$_id", _id: 0 } }
])以上語句使用了aggregation框架中的$group和$project操作符,其中$group操作符用于將所有員工按照年齡分組,$project操作符用于重新組織查詢結(jié)果,以顯示字段age。
可見,aggregation函數(shù)可以做為復(fù)雜靈活的去重操作。
附:mongodb distinct條件查詢
db.item.distinct('itemId',{recordTime:{$gte:'2019-08-05 14:00:00'}}).length
平常我們想要查某個指標有多少個不同的取值
但是有的時候,我們還想要先對整體數(shù)據(jù)有一定選擇之后再去執(zhí)行distinct計算
上述方式就能夠解決問題,
值得注意的是,后邊條件recordTime并沒有雙引號,否則就會報錯
官方distinct文檔
總結(jié)
distinct方法是MongoDB中非常有用的查找工具之一,可以用于檢索collection中不同字段中的唯一值,并且可以與Aggregation框架結(jié)合使用。
到此這篇關(guān)于MongoDB數(shù)據(jù)庫去重函數(shù)Distinct用法的文章就介紹到這了,更多相關(guān)MongoDB去重函數(shù)Distinct內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 6.5 x64系統(tǒng)中安裝MongoDB 2.6.0二進制發(fā)行版教程
這篇文章主要介紹了CentOS 6.5 x64系統(tǒng)中安裝MongoDB 2.6.0二進制發(fā)行版教程,本文分為6個步驟完成MongoDB的安裝和啟動,需要的朋友可以參考下2015-01-01
MongoDB中的主從同步配置和mongod相關(guān)啟動命令講解
這篇文章主要介紹了MongoDB中的主從同步配置和mongod相關(guān)啟動命令講解,文中也羅列了很多其他常用的mongod命令參數(shù),需要的朋友可以參考下2016-03-03

