首先查找出name字段相同的重复数据,并列出_id
db.collection.aggregate([
{
$group: { _id : '$name', count: { $sum : 1 },dups: {$addToSet: '$_id'} }
},
{
$match: { count: { $gt : 1} }
}
])
根据结果循环删除
.forEach(function(doc){
doc.dups.shift();
db.collection.remove({_id: {$in: doc.dups}});
})
其中,doc.dups.shift();
为保留第一条