python - 在 Pymongo 中执行批量插入时如何忽略错误。我在 pymongo 中使用有序的批量写入操作

标签 python mongodb pymongo

我正在尝试在 mongodb 集合中批量插入一些文档。

我对我收藏的链接字段施加了唯一约束。

bulkUrls = db.urls.initialize_ordered_bulk_op()

for info in links:
    info = urljoin(url['link'], info)
    if '#' in info:
        info = info[:info.index('#')]
        if(validateUrl(info)):
            bulkUrls.insert({'link' : info, 'last_processed' : 0,     'created_at' : time(), 'page_id' : str(inserted_id), 'opened' : False})
bulkUrls.execute()

附件是我的python代码。 我只想在集合中不存在具有相同 link 字段的其他文档时才插入该文档。

帮助将不胜感激。

最佳答案

如果您不必使用有序批量操作,则可以改用无序批量操作。

无序的批量写入操作被批处理并以任意顺序发送到服务器,在那里它们可以并行执行。在尝试所有操作后报告发生的任何错误。 来自 pymongo documentation

所以简单地使用:

bulkUrls = db.urls.initialize_unordered_bulk_op()

如果你坚持使用ordered bulk,你可以将write concern设置为0。

根据上面的相同链接,

bulkUrls.execute({'w': 0})

注意:这将禁用写入确认,这意味着您将不知道写入操作是否成功(“不推荐”)。

关于python - 在 Pymongo 中执行批量插入时如何忽略错误。我在 pymongo 中使用有序的批量写入操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31945960/

相关文章:

python - 如何删除 python 中列表的后端?

python - 读取 XML 头编码

javascript - 如何在meteor中配置数据库

pymongo - 集合的对象不可调用。如果你打算在 'update' 对象上调用 'Collection' 方法,它会失败,因为不存在这样的方法

python - 动态更新 mongodb

python - 如何使用python处理libxml2 parserError异常

python - 什么时候可以在定义之前使用名称?

mongodb - 在 mongorc.js 中选择特定的数据库

angularjs - MongoDB _id 长度变为 25

python - 将带有值的字段添加到 mongo 返回的文档中