2017-09-13 67 views
0

我的MongoDB的文件夾集合是這樣的刪除記錄:貓鼬recusce從數據庫

enter image description here

我可以用moongose

,並有唯一ID:55(文件夾1)從數據庫中所有兒童刪除? (文件夾2,文件夾3,文件夾4,文件夾5,文件夾6)和文件夾1,或者獲得ID 10(文件夾3)並刪除文件夾3,文件夾4,文件夾5?

感謝

回答

0

在純蒙戈它不可能自動完成,但如果你使用的貓鼬,您可以利用post('remove')掛鉤。

folderSchema.post('remove', function(removedFolder) { 
    folderModel.find({ parent: removedFolder.id }, function(err, subfolders) { 
     subfolders.forEach(function(subfolder) { 
      subfolder.remove(); 
     }) 
    }) 
}); 

請記住,只有貓鼬調用對象的方法.remove()後鉤子將觸發。這就是爲什麼在上面勾我們需要獲取所有子文件夾和單獨刪除他們每個人,而不僅僅是打電話:

folderModel.remove({ parent: removedFolder.id }) 

您可以瞭解更多關於貓鼬鉤的位置:http://mongoosejs.com/docs/middleware.html