欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mongodb 指定字段去重操作

程序员文章站 2022-03-07 10:49:30
...

   最近自己写的爬虫后的数据存入mongodb存在一些重复数据,在用户查询时可能出现重复选项,这样用户体验不咋好。下面记录如何根据指定字段,对数据库现有数据进行排重。

db.juejin.aggregate([
    { $group: { _id : '$chapterName', count: { $sum : 1 } } },
    { $match: { count: { $gt : 1} } }
])

上面我们根据指定chapterName字段查询出,该字段下相同的数据个个数

Mongodb 指定字段去重操作

 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}通过使用磁盘进行缓存。

这样我们的重复数据就被删掉了。