我想在MongoDB數據庫中插入一條記錄,但前提是它不存在。 有個聲音告訴我,這個代碼是不是最優的性能方面:如果MongoDB不存在,插入記錄的最快捷方式是?
if db.foo.find(record).count() == 0:
db.foo.insert(record)
怎麼辦呢最快的方法?
我想在MongoDB數據庫中插入一條記錄,但前提是它不存在。 有個聲音告訴我,這個代碼是不是最優的性能方面:如果MongoDB不存在,插入記錄的最快捷方式是?
if db.foo.find(record).count() == 0:
db.foo.insert(record)
怎麼辦呢最快的方法?
更新時,使用更新插入標誌:
db.foo.update_one(filter, updates_dict, upsert=True)
工作爲例:
db.things.update_one({'thing':'apple'}, {'$set':{'color':'red'}}, upsert=True)
這將爲firts文件搜索與'thing': 'apple'
和更新它的顏色爲紅色。如果找不到文檔,它將創建一個帶有這兩個參數的文檔。
如果你只是想確保只有一個記錄可以存在基於特定的鍵,然後創建該鍵的唯一索引。這將確保唯一性。 任何使用相同密鑰插入記錄的嘗試都將失敗。你的鑰匙可以是例如SSN。
謝謝,但我得到:文件 「foo.py」 35行,在 db.foo.update(記錄,UPSERT = TRUE) 類型錯誤:update()方法至少需要3個參數(3給出) –
Inspiring
更新已棄用,我將編輯爲update_one –
讓我們想象我不是一個人,而是一個預處理器。 db.foo.insert(record)如何轉換爲db.foo.update_one(filter,record,upsert = True)?什麼是過濾器? – Inspiring