我需要在MongoDB中插入文檔自動插入文檔(以代替自動生成的對象ID特定ID)用java ..MongoDB的:與特定ID,而不是生成的對象ID
要插入一個文檔或更新,如果存在,我試着用
findOne
來搜索id,如果不存在的話insert
的id然後findAndModify
。它的工作原理,但我不認爲這是有效的方式,這是非常耗時的。有沒有更好的方法來實現這一目標?要一次插入多個文檔,我遵循此solution。但我不知道如何插入我的自定義ID而不是objectID?
任何幫助將不勝感激
確實。但是真的和指向已經被採用的'.findAndModify()'方法沒有什麼不同。原諒我,如果我錯了,但問題似乎是問「如何分配一個自定義_id值,在** bulk **。所以Upserts是一樣的,顯然」多「更新不會削減它分配一個自定義ID – 2014-10-09 09:04:12
@NeilLunn我知道第一部分與單個文檔相關,因爲它使用'findOne()'來查看_id是否存在,如果不存在則插入它只包含'_id',然後是'.findAndModify'它帶有內容,'uspert'就是這樣一步操作,操作更簡單,問題2只涉及到插入操作,所以爲每個文檔部分設置一個'_id'應該是解決方案,再指定 – Trudbert 2014-10-09 09:32:17
您似乎誤解了批判這裏OP指出的問題是「什麼價值」分配給'_id'例如,一個「多」更新只會分配默認的'ObjectId'值,但當然只是「循環」插入和獲取你自己的id值,然後聯繫服務器並更新等等「是無效的客戶「,這是OP說的。因此,這個問題真的會問「什麼是有效的?」恕我直言,儘管也許沒有措辭最好的方式。 Ce la vie。 – 2014-10-09 09:40:19