【问题标题】:Skip same id during MongoDB insertMany [duplicate]在MongoDB insertMany期间跳过相同的ID [重复]
【发布时间】:2016-08-28 21:13:35
【问题描述】:

如果我们要插入与现有文档具有相同_id 的文档,是否有办法告诉 MongoDB 跳过(而不是崩溃)?

说,我有这份清单,我想坚持下去:

to_mongo = [
    {'_id': 'aaaaaa', 'content': 'hey'},
    {'_id': 'bbbbbb', 'content': 'you'},
    {'_id': 'aaaaaa', 'content': 'hey'}
]

mongo_collection.insert_many(to_mongo)

我希望最后一项被简单地忽略,而不是导致整个请求崩溃。

【问题讨论】:

    标签: mongodb pymongo


    【解决方案1】:

    尝试在 insert_many() 方法中使用ordered=False,即

    to_mongo = [
        {'_id': 'aaaaaa', 'content': 'hey'},
        {'_id': 'bbbbbb', 'content': 'you'},
        {'_id': 'aaaaaa', 'content': 'hey'}
    ]
    mongo_collection.insert_many(to_mongo, ordered=False)
    

    这可确保尝试所有写入操作,即使存在错误。来自docs

    ordered(可选):如果为 True(默认)将插入文档 按提供的顺序在服务器上串行。如果发生错误全部 剩余的插入被中止。如果为 False,文档将插入 服务器以任意顺序,可能并行,所有文档 将尝试插入。

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多