2013-11-25 42 views
1

對於MongoDB和Mongoose,我如何將對象標記爲從屬於它們的關係,以便如果父對象被刪除,所有依賴它的子對象也將被刪除。例如,如果作者被刪除,如何讓作者的所有文章自動刪除?貓鼬 - 如何指定和刪除相關關係?

var AuthorSchema = new Schema({ 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    name: { 
     type: String, 
     default: '', 
     trim: true 
    } 
}); 

var ArticleSchema = new Schema({ 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    title: { 
     type: String, 
     default: '', 
     trim: true 
    }, 
    content: { 
     type: String, 
     default: '', 
     trim: true 
    }, 
    author: { 
     type: Schema.ObjectId, 
     ref: 'Author' 
    } 
}); 

回答

1

如果你想要做的事,如MySQL的「關於刪除級聯外鍵」裏,如果你刪除父,孩子被自動刪除,那麼它是不可能在純MongoDB中。

爲了實現這一點,您必須在應用程序邏輯中實現它。在刪除作者時,必須根據authorID對文章集合執行另一次刪除操作。不要忘記把這個領域的索引。

+0

謝謝... @薩爾瓦多。我不知何故錯過了索引部分。順便說一句,你在接下來的1年2個月中有4725次瀏覽。可能是因爲你的名譽或圖片。 :) – inquisitive