最近写的爬虫py脚本需要对mongodb进行去重插入,而在mongodb中已经存储了百万级的数据。我原本打算使用update({},{},upsert=True),一条一条进行数据的去重插入,但是他的速度实在是太慢了,1500条数据需要近1分钟。之后我在网上看到可以使用bulk_write方法,实现批量的操作,但是效率仍然很低,需要45秒左右 ,只好作罢。但我惊奇的发现,其实可以通过自定义mongodb每条数据自动生成的唯一索引'_id'来达到去重的目的,使用insert_many并指定ordered=False,当插入数据有一条的_id相同时会报错,但其他的数据不相同的数据会插入成功,所以只需要把这个错误捕获就好了。不过目前还不清楚有什么副作用。


oh yeah