pymongo Error: pymongo.errors.Bu
2019-09-26 本文已影响0人
king2king
在mongodb进行数据库操作的时候触发异常pymongo Error: pymongo.errors.BulkWriteError: batch op errors occurred
- 今天在开发过程中遇到一个问题,将api的天级数据插入到mongodb中,出现了pymongo Error: pymongo.errors.BulkWriteError: batch op errors occurred这个异常。
解决过程
- 查找原因:此bug出现的原因是因为在insert_many过程中,检测到了重复的数据,但每条数据都存在不同都id值,百思不解
- bug复现:补一天的数据不会出现这个问题,但是补两天的数据就会复现。
- 真正原因:在程序中定义了一个全局list,用来往数据库批量插入数据,所以补一天的数据无论如何都不会出现问题。补多天的数据,需要遍历天数,但是全局的list并没有清空,以至于list中的数据会重复,插入数据库过程中报错。
- 解决办法:定位到问题后,在每次数据库插入完成后,执行清空list的代码。
list.clear()