【问题标题】:How to do a bulk insert without overwriting existing data - Pymongo?如何在不覆盖现有数据的情况下进行批量插入 - Pymongo?
【发布时间】:2017-08-12 16:24:04
【问题描述】:

我正在尝试在不覆盖现有数据的情况下向 MondoDB 批量插入数据。如果与唯一 ID(sourceID)不匹配,我想将新数据插入数据库。查看 Pymongo 的文档,我编写了一些代码,但无法使其工作。对我做错了什么有任何想法吗?

db.bulk_write(UpdateMany({"sourceID"}, test, upsert=True))

db 是我的数据库的名称,SourceID 是我不想在现有数据中覆盖的文档的唯一 ID,test 是我要插入的数组。

【问题讨论】:

    标签: python pymongo bulkinsert


    【解决方案1】:

    要么我不理解您的要求,要么您误解了UpdateMany 操作。根据documentation,此操作用于修改现有数据(与查询匹配的数据),并且仅当没有文档与查询匹配且upsert=True 插入新文档时。您确定不想使用insert_many 方法吗?

    此外,在您的示例中,应该是更新过滤器的第一个参数不是有效查询,必须采用 {"key": "value"} 的形式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-24
      • 2020-08-30
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多