python pymongo 大量插入时候 如何保证插入可靠?

在做少量测试的时候没有发现,当插入的数据量变大时候,
例如插入100W的数据 检查mongo中 实际只存了97W+点

try:
    self.task_list.insert_many([{"Url": task, "Mark": 0} for task in tasks], ordered=False)
except pymongo.errors.BulkWriteError:
    pass
except Exception as e:
    pass
        

通过监控发现,会触发BulkWriteError,导致部分插入失效。
但是每个要插入的任务逐个插入时都是正确的才对。

请问下 在插入比较多数据的时候,如何才能保证数据被有效 可能的加到mongo中?

阅读 6.2k
2 个回答
import pymongo


bulk = pymongo.bulk.BulkOperationBuilder(collection, ordered=False)
for task in tasks:
    bulk.insert({"Url": task, "Mark": 0})
bulk.execute()

啥?报MemoryError?请给mongodb应用端加内存

呼 由于内存限制 最终决定将文件拆分,逐个导入完成

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题