mongo aggregate 删除重复数据

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

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

allDiskUse  若是内存配置比较小, 设置这个才能运行, 不然会崩。rem

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

 

 


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}}); });io

相关文章
相关标签/搜索