最近自己寫的爬蟲後的數據存入mongodb存在一些重複數據,在用戶查詢時可能出現重複選項,這樣用戶體驗不咋好。下面記錄如何根據指定字段,對數據庫現有數據進行排重。
db.juejin.aggregate([
{ $group: { _id : '$chapterName', count: { $sum : 1 } } },
{ $match: { count: { $gt : 1} } }
])
上面我們根據指定chapterName字段查詢出,該字段下相同的數據個個數
db.juejin.aggregate([
{
$group: { _id: {chapterName: '$chapterName'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
},
{
$match: {count: {$gt: 1}}
}
],{allowDiskUse: true}).forEach( //(使用forEach循環根據_id刪除數據)
function(doc){
doc.dups.shift();
db.juejin.remove(
{
_id: {
$in: doc.dups
}
}
);
}
)
{allowDiskUse: true}通過使用磁盤進行緩存。
這樣我們的重複數據就被刪掉了。