mongo aggregate 删除重复数据

$group 按照什么排序, 关照 _id 这个是排序的依据

$match 这个从排序的结果内抽取 count 大于一的

allDiskUse  如果内存配置比较小, 设置这个才能运行, 否则会崩。

然后对找出来的结果集进行删除。

 

 


db.all_name.aggregate([{
    $group:{_id:"$name",count:{$sum:1},dups:{$addToSet:'$_id'}} },
    { $match:{count:{$gt:1}} }],
    {allowDiskUse:true}
    ).forEach(function(it){ it.dups.shift(); db.all_name.remove({_id: {$in: it.dups}}); });

posted @ 2018-09-14 13:47  svolcano  阅读(258)  评论(0编辑  收藏  举报