【问题标题】:Reattempting of failed bulk inserts in pymongo在 pymongo 中重新尝试失败的批量插入
【发布时间】:2020-09-02 02:05:36
【问题描述】:

我正在尝试使用 pymongo 在 Python 中将文档批量插入到 MongoDB 集合中。这就是代码的样子:

collection_name.insert_many([ logs[i] for i in range (len(logs)) ])

其中 logs 是可变长度的字典列表。

当任何日志都没有问题时,这可以正常工作。但是,如果任何一个日志有某种问题并且 pymongo 拒绝保存它(例如,问题是文档无法匹配为该集合设置的验证模式),则整个批量插入将回滚并且不会文档被插入到数据库中。

有什么方法可以通过仅忽略有缺陷的日志来重试批量插入?

【问题讨论】:

    标签: python django python-3.x mongodb pymongo


    【解决方案1】:

    您可以通过指定ordered: false 作为选项来忽略这些类型的错误:collection.insert_many(logs, ordered=False)。在引发异常之前尝试所有操作,您可以捕获该异常。

    https://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.insert_many

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2017-07-12
      • 2017-08-23
      • 1970-01-01
      • 2012-10-15
      • 2015-05-16
      相关资源
      最近更新 更多