2016-09-30 82 views
0

我有帶引用的父文檔。問題是,可以刪除所有引用的文檔並插入新的文檔,而不是更新舊的,插入新的和刪除的刪除文檔?在SQL中,這不是很好的做法,因爲索引變得分散。替換替換更新

+0

您是否想要更新整個文檔或只是一些屬性? –

+0

好吧,想象一下,我有參考產品的發票。當有人編輯發票並保存它時,我不想檢查哪些產品被刪除,哪些產品被更新/插入。我只想刪除所有舊產品並在那裏放置新產品。 –

回答

0

當您開始將文檔插入到MongoDB中時,它會將每個 文檔放在磁盤上的前一個旁邊。因此,如果一個文件 變大,將不再適合在空間它本來 寫入和將被移動到集合

我相信它能夠更好的另一部分刪除和插入櫃面我們不確定的大小,否則如果更新的規模更大,我們可以面對性能問題的情況下重新部署。

如果我沒看錯,你要實現的目標是文件替換的行爲,我相信你可以使用db.collection.findAndModify(),它有更新刪除領域,它可以幫助你實現你想要的行爲。