// 找出按pipe_id过滤重复的数据展现出来,第一个match是查询条件,$group是分组条件,后一个match是count>1的才展现出来,allowDiskUse:true容许到硬盘操做,不然内存不够bash
db.flow_data.aggregate([{ $match: { 'pipe_id': '17087582-f12b-11e8-893a-0242ac11001c' } }, { $group: { _id: { pipe_id: '$pipe_id', time: '$time' }, count: { $sum: 1 }, dups: { $addToSet: '$_id' } } }, { $match: { count: { $gt: 1 } } }], { allowDiskUse: true })
// 找出按pipe_id+time过滤重复的数据删除掉, doc.dups.shift()后移一位,后面按id删除code
// addToSet返回包含_idip
db.flow_data.aggregate([{ $match: { 'pipe_id': '17087582-f12b-11e8-893a-0242ac11001c' } }, { $group: { _id: { pipe_id: '$pipe_id', time: '$time' }, count: { $sum: 1 }, dups: { $addToSet: '$_id' } } }, { $match: { count: { $gt: 1 } } }], { allowDiskUse: true }).forEach(function(doc) { doc.dups.shift(); db.flow_data.remove({ _id: { $in: doc.dups } }); })