許多更新MongoDB中我有兩個集合了許多一對多的關係。我想在兩個文檔中存儲一個鏈接的ObjectIds數組,以便我可以將文檔A和快速檢索所有鏈接的文檔B,反之亦然。許多無需交易
創建這個鏈接是一個兩步過程
- 添加文檔A的ObjectID到文檔B
- 添加文件B的ObjectID文件A
看MongoDB的視頻,我發現這之後是存儲兩個集合
我需要確保兩個更新是由之間的許多一對多關係的推薦方式。在沒有交易的情況下,強健處理這個關鍵的兩步過程的建議方法是什麼?
我可以將此關係壓縮爲單個鏈接集合,優點是單個更新,沒有文檔B缺少指向文檔A的鏈接的機會。缺點是我沒有真正按照預期使用MongoDB。但是,因爲只有一個更新,所以具有定義多對多關係的鏈接集合似乎更加健壯。
我應該使用安全模式和手動檢查數據進去之後,失敗再試一次?或者,我應該只在其中一個集合中表示多對多關係,並依靠索引來確保我仍然可以快速獲取鏈接文檔?
有什麼建議嗎?由於
謝謝,我在我的問題中考慮了這種方法,但在視頻中,我看到這並不推薦作爲MongoDB的方式 – 2011-02-14 13:39:59
視頻是一個授權信息來源嗎? MongoDB只爲單一操作提供原子性。如果事務支持很重要:或者不要使用MongoDB,或按照描述使用MongoDB。你不能擁有一切。 – 2011-02-14 13:57:13