2016-03-07 34 views
17

MongoDB批量操作有兩種選擇:MongoDB中replaceOne()和updateOne()之間的區別是什麼?

  1. Bulk.find.updateOne()

    將單個文件更新操作的批量操作列表。該操作可以替換現有文檔或更新現有文檔中的特定字段。

  2. Bulk.find.replaceOne()

    將單個文件替換操作的批量操作列表。使用Bulk.find()方法指定確定要替換哪個文檔的條件。 Bulk.find.replaceOne()方法將替換限制爲單個文檔。

根據文檔,無論這兩種方法可以替代的匹配文檔。我的理解是否正確,updateOne()是更通用的方法,它可以替代文件,就像replaceOne()一樣,或者只是更新其特定的字段?

回答

19

使用replaceOne()您只能替換整個文檔,但updateOne()允許更新您在問題中註明的字段。

但是,這也意味着你可以使用更新運營商:

https://docs.mongodb.org/manual/reference/operator/update/

而且IIRC你可以改變你的意思是什麼,你不能用replaceOne()

+2

做使用updateOne()模式「改變模式「? – caub

+2

替換使用相同的參數替換一個新的文檔。通過更新,您可以添加/刪除組成文檔的參數。 – Hughzi

+3

啊好的,所以替換總是改變'_id' – caub

相關問題