如题,我现在实现的方法是用语句来查询:
result = db.collection.find_one(xxxx) if result: 更新数据 else: 插入数据
但是,这种方法效率太低了,不知道有没有更好的方法?
欢迎选择我的课程,让我们一起见证您的进步~~
MongoDB中引入了一種稱為upsert的特殊更新,如果沒有文檔符合更新條件,就會以這個條件和更新文檔為基礎創建一個新的文檔;如果找到了匹配文檔,則正常更新。
upsert
詳見MongoDB的文件。
upsert: db.collection.update(xx, xx,true) 第三個參數設為true即可
不知道有沒有對mongodb的find_one測試過, 在億級(已測試)資料查詢時沒問題.
MongoDB中引入了一種稱為
upsert
的特殊更新,如果沒有文檔符合更新條件,就會以這個條件和更新文檔為基礎創建一個新的文檔;如果找到了匹配文檔,則正常更新。詳見MongoDB的文件。
upsert:
db.collection.update(xx, xx,true)
第三個參數設為true即可
不知道有沒有對mongodb的find_one測試過, 在億級(已測試)資料查詢時沒問題.