代码之家  ›  专栏  ›  技术社区  ›  Hide

Pymango insert only不存在

  •  0
  • Hide  · 技术社区  · 5 年前

    我使用InsertOne()进行批量插入。

    user1 = InsertOne({"user_id": 1})
    user2 = InsertOne({"user_id": 2})
    collection.bulk_write([user1, user2])
    

    user_id = 1 已经存在于集合中,它抛出 batch op errors occurred

    我想知道如果数据不存在,有没有什么方法可以只插入?

    bulk_write )

    0 回复  |  直到 5 年前
        1
  •  1
  •   Ravi Shankar Bharti    5 年前

    你能做的是:使用 ReplaceOne 具有 upsert:true . 因此,如果文档已经存在,更新将不会有任何效果,如果它不存在,它将创建新文档。

    试试这个:

    user1 = ReplaceOne({"user_id": 1},{"user_id": 1},upsert = True)
    user2 = ReplaceOne({"user_id": 2},{"user_id": 2},upsert = True)
    collection.bulk_write([user1, user2])
    

    User 替换一