请清考如下。
insertMany是模拟数据
aggregate是删重复数据
db.yyy.insertMany([
{"_id":1,'time':'2017-04-01 16:25:21','name':'aaaa'},
{"_id":2,'time':'2017-03-01 16:25:21','name':'bbbb'},
{"_id":3,'time':'2017-02-01 16:25:21','name':'aaaa'},
{"_id":4,'time':'2017-04-01 16:25:21','name':'aaaa'},
{"_id":5,'time':'2016-11-01 16:25:21','name':'bbbb'},
{"_id":6,'time':'2016-12-01 16:25:21','name':'aaaa'},
{"_id":7,'time':'2016-11-01 16:25:21','name':'bbbb'},
]); db.yyy.aggregate([
{ $group: {
_id: { time: "$time", name: "$name"},
dups: { "$addToSet": "$_id" },
count: { "$sum": 1 }
}},
{ $match: {
count: { "$gt": 1 }
}}
],
{allowDiskUse: true}
).forEach(function(doc) {
doc.dups.shift();
db.yyy.remove({_id : {$in: doc.dups }});
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。