mongoDB中update_one與find_one_update異同


mongo中update_one與find_one_update異同

在使用mongo時,想要更新一個文檔的數據時,有update_one與find_one_update兩種方法可供使用。

共同點

兩個方法的傳入參數都差不多,主要參數都是filter,update,upsert。兩個方法都是用於更新一個文檔的數據。

差異

update_one並不會返回文檔的數據,而find_one_update會返回文檔的數據。並根據returnNewDocument參數確定返回的是更新前的數據還是更新后的數據

find_one_update的returnNewDocument參數

returnNewDocument為bool值。

  • 默認值為false,返回更新前的文檔。當upsert為true,且插入了文檔,返回值為null
  • 若returnNewDocument為true則返回更新后的文檔。當upsert為true,且插入了文檔,返回值為插入的文檔

find_one_update用處

當你需要在更新時返回文檔的數據,應該使用此方法。它相當與在數據庫層面結合了update與find兩個方法,避免了在並發狀況下所讀數據不一致。

例如你update了之后在應用程序端再去find一個文檔,這期間該文檔可能已經被其他終端修改過,這種情況下文檔中的數據已經不是你update之后的數據了。

當然,如果不需要更新文檔的數據,就直接用update_one方法即可,不必返回多余的數據,效率更高。

參考文獻

mongoDB使用手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM