mongodb去除重復的數據
來源:程序員人生 發布時間:2016-07-29 15:57:04 閱讀次數:3007次
今天出現了1個新的需求,有個部門需要拿到mongodb中的數據,要求去掉其中1個字段內容相同的數據。
雖然mongodb中有distinct來去重,但是和mysql的distinct不同的是,mysql中能用distinct * 返回整條記錄的信息,而mongodb的distinct我卻只是返回去重的那個字段的數據(也許mongodb也能夠返回整條,但是我不知道)。
mysql中的distinct返回完全記錄:
mongodb中distinct去重某個字段:
上邊的內容其實不是我想看到的結果,因此便想了1個辦法,去掉重復的數據后重新保存不重復的數據到某張表中,以下是個例子:
1、進入mongo shell:
3、在mongo shell中編寫并履行js代碼:
var res=db.test.find();
while(res.hasNext()){
var res1=db.test.find();
var re=res.next();
while(res1.hasNext()){
var re1=res1.next();
if(re.age==re1.age){
db.test.remove({"age":re1.age});
}
}
db.test.insert(re);
}
如上圖,第1次履行循環的時候由于res沒有定義而失敗,第2次定義了res后,履行成功。那末在新的集合中,就完全沒有該字段重復的數據了(這里只是測試以下,因此就用了同1個集合)。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈