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

原文地址:https://www.cnblogs.com/zhangjpn/p/7775242.html