pymongo.errors.BulkWriteError错误排解
在mongodb进行数据库操作的时候触发异常
pymongo Error: pymongo.errors.BulkWriteError: batch op errors occurred
这种问题出现在调用insert_many方法,原因可能有两种:
1. 数据库某个字段被设置成了unique,在插入的时候这个字段出现了重复;
2. insert_many使用时所插入的文档列表中存在指向同一个对象的多个元素,这个本质上跟第一种情况是一样的,因为每个元素被插入之后都会被添加了一个_id字段,而相同的指向相当于同一个_id被插入了两次,就会出现上述的问题。
解决办法是对这些unique字段预先进行判断,这是pymongo与mongoengine的区别,mongoengine是在建模的时候就会设置好,但pymongo除非报错,否则很难知道这个问题。
参考:
https://stackoverflow.com/questions/43073956/pymongo-errors-bulkwriteerror-batch-op-errors-occurred-mongodb-3-4-2-pymongo
https://stackoverflow.com/questions/38361916/pymongo-insert-many-bulkwriteerror