云服务器免费试用

mongodb删除重复数据方法(mongodb去重)

服务器知识 0 1038

MongoDB中可以使用以下几种方式删除重复数据:


mongodb删除重复数据方法(mongodb去重)

使用distinct()命令去除重复项并将结果保存到一个新的集合中。例如,以下命令将名为users的集合中name字段的重复值去除,并将结果保存到新的集合unique_users中:


db.users.aggregate([ { $group: { _id: "$name", count: { $sum: 1 }, unique_ids: { $addToSet: "$_id" } } }, 

          { $match: { count: { $gte: 2 } } }, 

          { $out: "unique_users" } ])

使用deleteMany()命令删除集合中所有重复数据。例如,以下命令将名为users的集合中name字段出现多次的文档都删除:


db.users.aggregate([

    { $group: { _id: { name: "$name" }, dups: { $push: "$_id" }, count: { $sum: 1 } } },

    { $match: { count: { $gt: 1 } } }

]).forEach(function(doc) {

    doc.dups.shift();

    db.users.deleteMany({ _id: { $in: doc.dups } });

})

需要注意的是,在删除重复数据之前必须了解业务需求及对重复数据的容忍度。某些情况下可以忽略存在的重复数据,而不会对业务造成影响。


声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: mongodb删除重复数据方法(mongodb去重)
本文地址: https://solustack.com/4625.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。