关闭

mongodb去除重复的数据

标签: mongo去重
20940人阅读 评论(11) 收藏 举报
分类:
里边的内容在某些情况下不可行,可以参考下一篇。

今天出现了一个新的需求,有个部门需要拿到mongodb中的数据,要求去掉其中一个字段内容相同的数据。

虽然mongodb中有distinct来去重,但是和mysql的distinct不同的是,mysql中能用distinct * 返回整条记录的信息,而mongodb的distinct我却只是返回去重的那个字段的数据(或许mongodb也可以返回整条,但是我不知道)。

mysql中的distinct返回完整记录:


mongodb中distinct去重某个字段:


上边的内容并不是我想看到的结果,因此便想了一个办法,去掉重复的数据后重新保存不重复的数据到某张表中,以下是个例子:
1、进入mongo shell:
./mongo

2、切换到需要去重的集合所在的数据库:
use admin

3、在mongo shell中编写并执行js代码:
var res=db.test.find();
while(res.hasNext()){
      var res1=db.test.find(); 
      var re=res.next();
      while(res1.hasNext()){
              var re1=res1.next();
              if(re.age==re1.age){ 
                   db.test.remove({"age":re1.age}); 
               }
       } 
       db.test.insert(re); 
}



如上图,第一次执行循环的时候由于res没有定义而失败,第二次定义了res后,执行成功。那么在新的集合中,就完全没有该字段重复的数据了(这里只是测试以下,因此就用了同一个集合)。

1
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

如何在Mongodb集合中统计去重之后的数据

比方说我们有个Mongodb集合, 以这个简单的集合为例,我们需要集合中包含多少不同的手机号码,首先想到的应该就是使用distinct关键字, db.tokencaller.di...
  • andamajing
  • andamajing
  • 2016-05-07 19:39
  • 13464

mongodb去除重复的数据(二)

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

Mongo入门:数据去重之MapReduce,Aggregation的简单使用(另附相关网络资源)

先附上两个很好用也常见的链接: - MongoDB 教程-RUNOOB - The MongoDB 3.4 Manual - 用通俗易懂的大白话讲解Map/Reduce原理(很通俗但是也很浅)。...
  • V_code
  • V_code
  • 2017-01-05 15:30
  • 2415

Mongodb学习(8)pymongdb的使用——数据去重

关于pymongo的去重方法, 网上找了老半天,都没有发现单独对pymongo里面的数据进行去重的方法 网上说的最多的是 使用 distingct 方法进行去重操作, 但是这个方法,只是返回了去重之后...
  • qiqiyingse
  • qiqiyingse
  • 2017-05-23 00:41
  • 1201

MongoDB去除重复数据

mongodb一个很强大的非关系数据库,用来存取key-value形式的数据。当存数据时,难免会有重复数据。通过查阅资料,这里有两种方法可以去除重复数据。 1.如果你用的是mongodb 2.x版本,...
  • qq_22600319
  • qq_22600319
  • 2017-03-24 20:06
  • 219

java对mongo的一些去重、分组聚合、分页查询等操作

为java mongo的一些去重、分组聚合、分页优化操作
  • u010831352
  • u010831352
  • 2017-06-20 20:48
  • 2189

MongoDB 分组, 去重(转)

原文 http://my.oschina.net/huzorro/blog/73879 文档结构如下: ? 1 2 3 4 ...
  • phker
  • phker
  • 2015-09-02 15:13
  • 1002

mongodb 分组查询统计去掉重复的记录

mongodb版本号是,MongoDB shell version: 2.4.4 操作环境,shell窗口 ,如下所示:[mongo_user@mongodb_dbs ~]# mongo --por...
  • mchdba
  • mchdba
  • 2016-01-04 11:42
  • 9915

mongoDB管道使用-去重分页查询

db.iot_run_record_hist.aggregate([ { "$match" : {"runStatus":{"$in":[2 , 10 , 18 , 8 , 9 , 1...
  • hunter542
  • hunter542
  • 2016-11-20 18:06
  • 513

Mongodb 删除重复数据的几个方法

Mongodb 删除重复的数据最近在处理一些专利数据,从专利局爬数据的时候,总会间隙性出现中断,为了保证数据的完整性就进行了一些重复下载。将数据从几万个Excel表格中导入Mongodb后,第一步就是...
  • xiaoyu90520
  • xiaoyu90520
  • 2017-07-10 17:52
  • 1657
    有问题要问?点击QQ联系我!
    有需要,qq联系我
    1160569243
    公告栏
    个人资料
    • 访问:787107次
    • 积分:9966
    • 等级:
    • 排名:第2029名
    • 原创:229篇
    • 转载:38篇
    • 译文:0篇
    • 评论:408条