2015-05-22 119 views
2

我已經使用$ pull成功刪除了父文檔的子文檔。 現在,我將如何刪除自己的模式中的子文檔? 對不起,如果它沒有任何意義,node.js newb在這裏。 :)刪除貓鼬中的參考文檔

UserSchema

var userSchema = new Schema({ 
    posts:[{type:Schema.Types.ObjectId,ref:'post'}] 
}); 

PostSchema

var postSchema = new Schema({ 
    user:{type:Schema.Types.ObjectId,ref:'user'} 
}); 

刪除:

User.findByIdAndUpdate(id, 
    {$pull:{'posts':post_id}},function(err,model){ 
     if(!err){ 
     console.log(model); 
     resolve(model); 
     } 
     else{ 
     reject(err); 
     } 
}); 

回答

0

你可以嘗試創建嵌套調用如下刪除的子模式:

User.findByIdAndUpdate(id, 
    {$pull:{'posts':post_id}},function(err,model){ 
     if(!err){ 
     Post.find({ user : model._id }).remove().exec(); 
     console.log(model); 
     resolve(model); 
     } 
     else{ 
     reject(err); 
     } 
});