python MongoDB 插入数据 去除重复数据

本文探讨如何在Python中使用MongoDB的update()方法结合$setOnInsert参数,实现在插入数据时自动去除重复项。通过设置upsert为True,确保数据不存在时插入,已存在时则不插入或更新数据。文中提到了update_many()方法在批量操作时的去重问题,并邀请读者分享解决方案。
摘要由CSDN通过智能技术生成

python 往MongoDB数据库中插入数据,经常会遇到的一个需求就是,对插入的数据进行去重。

最笨的方法呢,就是先把所有的数据插入数据库里,再去除掉多余重复的数据。具体操作呢,繁琐,复杂,效率低,还总容易出现莫名其妙的bug。

最理想的插入方法就是,如果数据库不存在,则插入数据;如果数据已经存在了,就不插入数据,或者更新数据。
使用insert方法,目前还没发现什么去重的好用处
。 能够更新数据库的就是update()方法了。

update()方法需要两个参数,fileter,document, fileter 是更新条件, document是更新的内容。

要实现如果不存在就插入,如果存在就不插入的要求,我们需要用到 update的一个参数:‘$setOnInsert’

具体的操作方法可以参考九茶大神的这篇博客: https://blog.csdn.net/Bone_ACE/article/details/50696477

详细介绍了 $setOnInsert 方法的使用规则。

唯一不足的是,这里只有命令行模式下的规则,现在我们需要的是在python和MongoDB交互过程中使用$setOnInsert参数。

这个就是我们接下来的重点了。

python与MongoDB的交互方法和命令行下的MongoDB命令 差不了多少,原理相同,就是具体的方法可能有些差异。

update方法的源码具体如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值