2015-08-26 45 views
0

我是新來的MongoDB我試圖使用命令導入的數據替換現有的文檔

mongoimport --db testingdb --collection dbcollection1 --file books.json --jsonArray 

其附加的數據收集完全從我的本地導入JSON文件的MongoDB。但是,當我編輯同一個JSON文件中的某些文檔並重新執行命令而不是更新文檔時,它會再次追加相同的數據。那麼,如何通過更新已存在於數據庫中的文檔來將文檔添加到集合中?

+0

聽起來像你想要的['--upsert'](https://docs.mongodb.org/v3.0/reference/program/mongoimport/#cmdoption--upsert),可能['--upsertFields'] (https://docs.mongodb.org/v3.0/reference/program/mongoimport/#cmdoption--upsertFields)。但是你的問題沒有說明爲了將文檔稱爲「匹配」,這些字段將會是哪些字段。 –

+0

我需要一個名爲recipe_name的字段是相同的,才能調用文檔「匹配」 –

回答

1

如前所述,--upsert--upsertFields選項處理這個問題。當_id以外的字段或字段確定如何匹配文檔時使用後者。

你的情況:

mongoimport --db testingdb --collection dbcollection1 \ 
--upsert --upsertFields recipe_name \ 
--file books.json --jsonArray 

如果比賽在集合現今的數據將被導入的數據被覆蓋在發現該字段。

+0

嗨,有沒有辦法找出對象在json中不匹配?以下是它不匹配的錯誤消息:'錯誤插入文檔:E11000重複鍵錯誤集合:info.restaurants索引:slug_1 dup鍵:{:null}'。任何幫助是極大的讚賞。謝謝! –

相關問題