MongoDB去重

个人需求需要对百万级别的mondodb集合去重,记录一下

db.集合名.aggregate([
{$group:{_id:'$字段',count:{$sum:1}}},
{$match:{count:{$gt:1}}}
],{allowDiskUse:true})
 db.getCollection('集合名').aggregate([
    {
        $group: { _id:'$字段名',count: {$sum: 1},dups: {$addToSet: '$_id'}}
    },
    {
        $match: {count: {$gt: 1}}
    }
	],{allowDiskUse: true}).forEach( //(使用forEach循环根据_id删除数据)
    function(doc){ 
        doc.dups.shift(); 
        db.getCollection('集合名').remove(
            {
                _id: {
                    $in: doc.dups
                }
            }
        ); 
    }
)