2016-03-07 124 views
0

我有5個集合 - A,B,C,D,E。我有一個存儲在A中的文檔,並且與其他4個集合中的文檔相關。我正在使用MeteorJS。現在,我必須安全地刪除文檔中的數據。換句話說,文件必須在A中刪除,以及在其他文件中的引用。只有在他們全部被刪除後,我才能向用戶顯示成功消息。現在,我只有:使用MeteorJS從MongoDB的多個集合中刪除文檔

A.remove(documentID); 

我必須在這裏使用回調來顯示用戶的結果。我對MongoDB完全陌生,並且明白,在SQL中不可能級聯刪除一行。我不知道如何編寫將從所有集合中刪除文檔及其引用(全部由documentID引用)的代碼,並將結果顯示給用戶。有人可以幫忙嗎?非常感謝!

+0

你有沒有試過任何代碼? –

回答

0

您正在尋找蒐集鉤子:https://github.com/matb33/meteor-collection-hooks

蒐集鉤子讓你之前執行代碼/插入/更新/後集合刪除。使用你的例子,你可以創建一個看起來像這樣的收集鉤:

A.after.remove(function(userId, doc) { 
    B.remove({AReference: doc._id}); 
    C.remove({AReference: doc._id}); 
    D.remove({AReference: doc._id}); 
    E.remove({AReference: doc._id}); 
}); 

無論你的相關領域是什麼,AReference將需要。

+0

非常感謝,但在通過Github回購之後,我有一個問題,我該如何檢查這類代碼的錯誤?所有的清除應該是成功的。如果是這樣,則將成功代碼返回給用戶。如果一個人失敗,應該返回一個錯誤代碼。我是否應該使用回撥來撥打每個電話? – user3033194

+0

這取決於你想如何處理它。我可能會在刪除中投入大量的嘗試,這對我來說已經足夠了。 –

相關問題