例如,我有文件新序列與_ids寫: [1,2,3,4,5,6,7]MongoDB的InsertBatch例外
和已存儲的與_ids文檔集合: [ 3,4,7]。
我想用命令InsertBatch存儲我的新序列,並且不想檢查每個_id是否存在。當然Mongo會因爲碰撞而拋出異常,並且集合將只有部分新的序列: [3,4,7,1,2]
我該如何解決這個問題?
例如,我有文件新序列與_ids寫: [1,2,3,4,5,6,7]MongoDB的InsertBatch例外
和已存儲的與_ids文檔集合: [ 3,4,7]。
我想用命令InsertBatch存儲我的新序列,並且不想檢查每個_id是否存在。當然Mongo會因爲碰撞而拋出異常,並且集合將只有部分新的序列: [3,4,7,1,2]
我該如何解決這個問題?
如果您使用的是MongoDB 2.0,則可以將continueOnError
標誌設置爲false
以實現此行爲。有關詳細信息,請參閱http://www.mongodb.org/display/DOCS/Inserting#Inserting-Bulkinserts,並查閱驅動程序的API文檔以瞭解如何在應用程序中使用它。
cool !!!謝謝!!!!!!這是我需要的;) – Edward83 2012-04-18 16:44:00
期望的結果是什麼?你會有兩個帶有_id 3的文件嗎?或者,你想保留舊版本還是新版本? – dcrosta 2012-04-18 15:06:15
所有的_id都是唯一的,我想保留舊文檔;)所以我需要寫[1,2,5,6]。好吧,我可以找到所有的碰撞,從新的序列中刪除它們,並在編輯的序列上運行BatchInsert,但可能解決方案可能會更漂亮;) – Edward83 2012-04-18 15:18:20