MongoDB查询重复记录并保存到文件csv


 

客户1w用户记录,发现里面有小部分重复数据

需要查出,比对哪些信息不同

https://docs.mongodb.org/manual/reference/operator/aggregation/#aggregation-pipeline-operator-reference

https://docs.mongodb.org/manual/reference/operator/aggregation/group/#pipe._S_group

https://docs.mongodb.org/manual/reference/operator/aggregation/addToSet/#grp._S_addToSet

 

var keys = "";
db.users.find().limit(1).forEach(function(u){
    for(var p in u)
    {
        keys += p + ",";
    }    
});

keys = keys.trimRight(",");
print(keys); //输出csv列名
db.users.aggregate([{$group: { _id: "$prid", values: {$addToSet: "$$CURRENT"}, total: {$sum: 1}}}, {$match: {total: {$gt: 1}}}]).forEach(function(g){
    g.values.forEach(function(v){
        var line = "";
        for(var key in v)
        {
            line += v[key] + ",";
        }
        line = line.trimRight(",");
        print(line); //输出重复数据
    })
})

保存上述代码比如到D:\mongojs\aggregate.js

运行

mongo yourdb aggregate.js > repeated.records.csv

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM