2014-10-07 20 views
1

我在foo和bar之間有一對多的關係。我希望確保每當刪除foo時,所有引用它的欄都將被刪除。有沒有辦法確保嗎啡會發生嗎嗎?我可以編寫刪除查詢來查找所有依賴對象,並將它們刪除,但問題是,條形對象也有引用它們的東西,我想刪除它們,並且希望確保自動刪除邏輯級聯。刪除嗎啡中所有依賴於已刪除參考的記錄?

+0

當你刪除一個指針時,你將有一個NULL引用。所以如果有其他指針指向同一個指針,這些指針將會有一個NULL引用;他們指向無處。但是,如果條形指針指向foo指向的位置,或者它們都指向相同的內存位置,則條形指針將繼續引用相同的內存。刪除後檢查小節電流參考,您只需要打印它的值。其中應該是null或0引用。 – Juniar 2014-10-07 17:08:11

+0

我瞭解默認行爲,但我不想要默認行爲。我希望foo的所有要點能夠在條形圖完全消失的情況下完全消失,而不必檢查條形圖引用或將它們作爲單獨的查詢刪除。我認爲mongo可能已經通過優化來支持它,使其更加高效,因爲它似乎是一種常見的用例。我不是很確定*嗎啡*支持它,我無法找到如何做到這一點,但我想我會問:) – dsollen 2014-10-07 17:35:06

回答

3

您必須發出單獨的刪除呼叫才能刪除引用的文檔。 Mongo不支持關係,也不支持級聯刪除。您可能會考慮嵌入這些文檔,而不是使用引用。

+0

我害怕你會這樣說,但我不得不問如果有選擇的話。感謝您確認我懷疑的內容。嵌入可能最終發生,現在我試圖最小化對現有mongo結構的更改。我會在後面記住它。 – dsollen 2014-10-07 18:04:13