1、mongodb查詢重複資料
db.wuyou_data.aggregate([
,count:}
},}}],)
2、mongodb去重
db.wuyou_data.aggregate([
,count:,dups:}},}
}],).foreach(function(doc)});
})
解析:
(1)根據position_name、company_name等分組並統計數量,$group只會返回參與分組的字段,使用$addtoset在返回結果陣列中增加_id欄位
(2)使用$match匹配數量大於1的資料
(3)doc.dups.shift();表示從陣列第乙個值開始刪除;作用是剔除重複資料其中乙個_id,讓後面的刪除語句不會刪除所有資料
(4)使用foreach迴圈根據_id刪除資料
(5)$addtoset 操作符只有在值沒有存在於陣列中時才會向陣列中新增乙個值。如果值已經存在於陣列中,$addtoset返回,不會修改陣列。
(6)allowdiskuse: true資料過大會報記憶體錯誤:exceeded memory limit for $group, but didn't allow external sort. pass allowdiskuse:true to opt in 可以在後面新增上這個屬性就不會了。資料不大的情況下,可以不用試一下
注意:foreach和$addtoset的駝峰寫法不能全部寫成小寫,因為mongodb嚴格區分大小寫。
參考:
去除重複數
這是一道外企演算法的面試題,前提是不允許使用util包之外的類,即任何集合類都不允許使用。寫出的演算法效率越高,此題得分越高,大家可以試一下。題目是輸入一串已經排序好的陣列,輸出消除重複數之後的陣列。如 輸入 輸出 消除重複數 已經排序好的陣列 author fangtengfei date 201...
TreeSet和HashSet 去除重複資料的不同
treeset去重 首先treeset可以實現排序 org.junit.test public void testhashset if o1.getage o2.getage else public person string name,int age,int money 這是person類的構造器...
SQL去除重複資料
sql中去除完全相同資料可以用distinct關鍵字,任意欄位去重可以用group by,以下面的資料表為例。idname score1小王 512小魏613小張 714小李515小王 51 1.存在兩條完全相同的紀錄,用關鍵字distinct就可以去掉 select distinct from t...