MongoDB怎么去除大量重复的数据

2023-10-30

本文虽然不是完全转载,但是思路及代码均是借鉴于☞不会编程的小猿☜博主的csdn博客,传送门如下:

不会编程的小猿的博客

使用python爬虫采集数据通常会存放到MongoDB数据库中,那采集到的数据可能就会有大量的重复,那么有什么思路能够去重呢,可以使用MongoDB命令对mongo去重,也可以使用第三方库pandas对MongoDB去重,使用pandas很容易,那么怎么使用MongoDB命令对数据库去重呢
首先建立一个有少量重复数据的MongoDB数据库用以模拟

首先,我的数据库名为 subject,集合名为 info
在Navicat中查看一下数据库
在这里插入图片描述
在这里插入图片描述
使用数据库命令看一下有多少条数据db.集合名.count()
在这里插入图片描述
看来有59条数据,但是不重复的数据只有5条,用字典形式展示为:
{‘name’:‘python’,‘age’:31},{‘name’:‘java’,‘age’:30},{‘name’:’.net’,‘age’:28},{‘name’:‘c++’,‘age’:35},{‘name’:‘c’,‘age’:35}
其余都是重复的数据

那么就可以在mongo shell里输入命令进行去重了

 db.info.aggregate([
    {
        $group: { _id:'$name',count: {$sum: 1},dups: {$addToSet: '$_id'}}
    },
    {
        $match: {count: {$gt: 1}}
    }
	],{allowDiskUse: true}).forEach(
    function(doc){ 
        doc.dups.shift(); 
        db.info.remove(
            {
                _id: {
                    $in: doc.dups
                }
            }
        ); 
    }
)

然后,结果如下:
去重后的数据库

至于代码中的一些参数,如果不懂的话可以去原博主的博客里看,也可以去网上查,我就不再描述了,原博客的传送门在文章最上方

嗯,就这样了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB怎么去除大量重复的数据 的相关文章

随机推荐

  • Ubuntu系统无法联网问题

    在网上看到许多解决方案是修改网络配置文件 但是ubuntu系统的目录结构中甚至都没有对应文件 因此找到以下解决方案 能够顺利联网并进行sudo install 亲测有效解决方案 1 在虚拟机设置中将网络适配器修改为NAT模式 2 找到net
  • please check whether the configs are released in Apollo!

    项目启动一直报错 其他同事 其他模块都没有这个错误 关键信息如下 Cause status code 404 Could not find config for namespace appId m ln contractmanage clu
  • Java程序员必须要了解的七个开源协议介绍

    1 Mozilla Public License MPL License 允许免费重发布 免费修改 但要求修改后的代码版权归软件的发起者 这种授权维护了商业软件的利益 它要求基于这种软件得修改无偿贡献版权给该软件 这样 围绕该软件得所有代码
  • 【C++】模板定义位置引发未定义标识符 “E“

    代码如下 include
  • 为什么怕写代码(自己的亲身经历)

    下班了 坐在工位不知不觉就又想起了刚开始接触java编程的日子 其实我觉得这个毛病也不在少数人 因为在我上学的时候班里面分组做项目 基本都是什么情况呢 一人做好 全部就可以交任务了 最后导致了如果代码某个地方出错了 全班90 的都出错了 归
  • pytorch下载与安装(离线包版本)

    笔者因为实验需要 不同的模型需要不同版本版本的pytorch 于是安装pytorch就总是出现一个问题 那就是断 比如需要安装torch1 4版本 使用Anaconda Prompt尝试了几次 pip install torch 1 4 0
  • python中eoferror是啥错误,python怎么看错误类型是什么

    以下是python的错误类型的总结 希望能帮助到有需要的小伙伴 Python全部的错误类型 错误类型 说明 ZeroDivisionError 除 或取模 零 所有数据类型 ValueError 传入无效的参数 AssertionError
  • 【精华】详解Qt中的内存管理机制

    前言 内存管理 是对软件中内存资源的分配与释放进行有效管理的方法和理论 众所周知 内存管理是软件开发的一个重要的内容 软件规模越大 内存管理可能出现的问题越多 如果像C语言一样手动地管理内存 一会给开发人员带来巨大的负担 二是手动管理内存的
  • 人生百味-7:一个人干活,一群人催进度,谁之过?

    如果你曾经是程序员 我相信你会深有体会 如果你曾经是项目管理 我相信你会有感受 旁观的说 那是专业活 只有他能做得来 干活的说 对不起大家 还还需要一段时间查
  • 论文阅读-Attention Bottlenecks for Multimodal Fusion(多模态特征融合)

    一 论文信息 论文题目 Attention Bottlenecks for Multimodal Fusion paperwithcode https paperswithcode com paper attention bottlenec
  • 分组密码算法与DES算法

    目录 1 分组密码的含义 1 1 分组密码介绍 1 2 分组密码的含义 1 3 分组密码的要求 2 分组密码的设计思想 2 1 分组密码的设计思想 3 分组密码的基本特点 3 1 分组密码的基本特点 3 2 分组密码的迭代结构 3 3 子密
  • 网关ping不通

    一 ping 网关 ping 10 0 0 254 ping sendto Host is down ping sendto Host is down Request timeout for icmp seq 0 ping sendto H
  • windows批处理:路径以\结尾 + unix换行 + rem + %~dp0时会导致报错

    windows对unix和windows换行符都支持的 但是遇到一种情况对unix不支持 之前遇到过window10执行没问题 但到了win7却有问题 代码如下 set project dir name Lua515 rem dp0 aaa
  • 轻松穿戴 IMU嵌入宽松衣服里做动作捕捉

    在日常生活中 保持正确姿势能够有效促进血液循环并降低慢性疾病的患病风险 在康复环境中 姿势监测可以帮助医护人员评估病情和治疗手段的效果 从而改善患者的身体状况 在以往的研究中 往往要求IMU牢固固定在穿戴者的特定身体部位 对穿戴要求较高 操
  • codeblocks安装、使用、调试教程

    一 下载 官方下载地址 二 安装 运行codeblocks 20 03mingw setup exe或FossHUB 界面如下 点击 Next gt 点击 I Agree 如上图所示的选择组件界面 这时一定要勾选 MinGW Compile
  • Python实现某网站爬取小说(爬虫)

    该代码仅供学习交流 爬虫 爬虫是一种自动化程序 用于从互联网上获取和提取数据 它模拟人类用户的行为 在网页上浏览和抓取信息 并将所需数据保存或处理 下面演示的代码是爬取小说的 先看运行效果图 下载完成后 直接合并为一个文件 超方便好吧 不是
  • 无法访问GitHub,原因以及快速解决办法

    访问GitHub时 总是无法访问 例如出现如下情况 原因分析 一 首先 需要明确的是GitHub本身并没有封锁某些地区的访问 如果无法访问GitHub 很有可能是由于网络层面的问题 可能存在以下问题 DNS是一种用于将网址转换为IP地址的工
  • python 点击run 报错 @NotNull method

    问题 Error running test NotNull method com intellij execution configurations GeneralCommandLine getExePath must not return
  • 基于Qt的在线音乐播放器

    1 了解音乐播放器应该有哪些功能 音乐播放器的各种控制 上下曲 单曲循环 随机播放 顺序播放 歌曲列表 歌词显示 本地音乐保存 在线音乐搜索 在线音乐播放 2 制作Qt音乐播放器一定要了解QmediaPlayer和QmediaPlaylis
  • MongoDB怎么去除大量重复的数据

    本文虽然不是完全转载 但是思路及代码均是借鉴于 不会编程的小猿 博主的csdn博客 传送门如下 不会编程的小猿的博客 使用python爬虫采集数据通常会存放到MongoDB数据库中 那采集到的数据可能就会有大量的重复 那么有什么思路能够去重