今天使用mongodb发现某一字段有很多重复的值,需要根据该字段将重复的值删除,保留一份,查了很多资料,写出了一套去重代码记录下来。

首先应该将数据库表备份,这是所有数据处理步骤的最重要一步,谁也不知道会发生什么,数据无价!

删除语句解析:

db.userInfo.aggregate([

{

$group: { _id: {userName: '$userName',age: '$age'},count: {$sum: 1},dups: {$addToSet: '$_id'}}

},

{

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

}

]).forEach(function(doc){

doc.dups.shift();

db.userInfo.remove({_id: {$in: doc.dups}});

})

1.根据userName和age分组并统计数量,$group只会返回参与分组的字段,使用$addToSet在返回结果数组中增加_id字段

2.使用$match匹配数量大于1的数据

3.doc.dups.shift();表示从数组第一个值开始删除;作用是踢除重复数据其中一个_id,让后面的删除语句不会删除所有数据

4.使用forEach循环根据_id删除数据

$addToSet 操作符只有在值没有存在于数组中时才会向数组中添加一个值。如果值已经存在于数组中,$addToSet返回,不会修改数组。

后续还得研究一下分页相关功能

引自:

https://www.cnblogs.com/nicolegxt/p/24b3653947991ebe73e5d70609ab2943.html

mongodb去除重复的值相关推荐

  1. php二维数组拆分成字符串,PHP二维数组切割为字符串并去除重复的值

    本篇文章的内容是关于PHP二维数组切割为字符串并去除重复的值 的代码,现在分享给大家,有需要的朋友可以参考一下 应用场景在于需要查询出某一个rent_contract_id所有有关的id及rent_c ...

  2. php 去除重复的值,php数组怎么去除重复值?

    PHP中可以使用array_unique()函数来去除数组的重复值:如果两个或更多个数组值相同,array_unique()函数只会保留第一个元素,其他的元素值会被删除:语法格式"array ...

  3. mongodb去除重复的数据(二)

    前天因为工作需要,开始着手对数据库中两千多万的数据中其中一个字段重复的数据进行去重. 原本使用一些测试的数据测试后,前天写的那个方法是可行的,但是当面对这个两千万的真实数据时,我却发现这方法有些不顶用 ...

  4. Mongodb去除重复的数据,pymongo去重

    接上一篇的,发现爬斗鱼主播信息存入Mongodb数据库后,发现很多重复的数据,毕竟斗鱼不可能有这么多的主播,所以很多页是有重复的主播房间的. 查了一下怎么去重,发现比较麻烦,与其存入重复的数据后面再去 ...

  5. linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...

    先来看命令paste. paste将几个文件的相应行用制表符连接起来,并输出到标准输出. paste [选项] file1 file2 -d 指定不同于空格或tab键的域分隔符.例如用#分隔域,使用- ...

  6. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  7. 去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!

    点击上方蓝字关注星标★不迷路 本文作者:拉登 Dony来源:拉小登(ID:ladengchupin)本文编辑:小叮.竺兰前段时间遇到这样一个问题,让我很头疼. 头疼的原因有 3 点:❶ 问题描述不清晰 ...

  8. list去除重复值的方法(面试高频)

    不知道怎么最近找工作会遇到些人问list出现重复值去重的办法,目前自己就只想到了两个办法,欢迎高手指点! 1.首先第一个办法最简单的就是用 set ,set本身就是不能出现重复值的,所以他会自动去重. ...

  9. 去除html重复的元素 js,js数组中去除重复值的几种方法

    在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的 ...

最新文章

  1. 【MATLAB】二维矩阵可视化 MATLAB绘图
  2. 【线段树合并】解题报告:luogu P4556雨天的尾巴 (树上对点差分 + 动态开点 + 线段树合并)线段树合并模板离线/在线详解
  3. 安卓绿色联盟两项免费福利重磅发布:EMUI9.0和绿色应用2.0测试能力
  4. perl 引用(一)
  5. 第三日:继续恢复网站
  6. 强化学习6——policy gradient的变种State of the Art
  7. 【终极方法】This method must return a result of type boolean
  8. css系列教程1-选择器全解
  9. vue快速复制快捷键_vue快捷键.doc
  10. java keytool 工具
  11. 如何关闭迅雷频繁自动弹出更新到新版本的提示
  12. Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Ro A. In Search of an Easy Proble
  13. 计算机Word文档新建样式A1是啥意思,高会《职称计算机》Word 2007:创建新样式
  14. 计算机 玩体感游戏,电脑也能玩体感游戏了 微软推出Windows版Kinect
  15. clover UEFI+GUID最简单显核安装黑苹果教程(易懂)
  16. Win11 OneDrive登录遇到问题0x8004de40
  17. 腾讯云服务器域名公安备案记录
  18. 【电影】X战警天启HDTC版免费观看英文中字字幕
  19. 2017-2018-1 20162316刘诚昊 实验一 线性结构
  20. 解决Win11或Win10版本配置IDEA的JDK1.8的版本以及java环境是否成功配置的问题

热门文章

  1. 汉澳sinox2019ai安装图解
  2. PHP经典算法百钱买小鸡
  3. C4D致富经典入门到精通(四)
  4. 【大学物理·光学】相干光
  5. JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)...
  6. Git文件常见下标符号说明
  7. 数学实验第一章:MATLAB基础
  8. 迁移jira后,confluence不能登录解决方法
  9. 2019年“旅行者之选”全球、亚洲、中国最佳目的地 | 周末
  10. Linio与AdsPower达成合作,助力跨境商家掘金拉美市场