db.getCollection('order_trade_info').aggregate([
{
$group: { _id: {order_id: '$order_id'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
},
{
$match: {count: {$gt: 1}}
}
]).forEach(function(doc){
doc.dups.shift();
db.getCollection('order_trade_info').remove({_id: {$in: doc.dups}});
})
Mysql
1.根据one列查询重复的数据(根据单列判断重复)
SELECT * FROM testdelete WHERE ONE IN (SELECT ONE FROM testdelete GROUP BY ONE HAVING COUNT(ONE) > 1)
DELETE
FROM testdelete
WHERE ONE IN(SELECT
ONE
FROM (SELECT
ONE
FROM testdelete
GROUP BY ONE
HAVING COUNT(ONE) > 1) a)
AND id NOT IN(SELECT
*
FROM (SELECT
MIN(id)
FROM testdelete
GROUP BY ONE
HAVING COUNT(ONE) > 1) b)