2015-05-22 2 views
2

Я успешно удалил поддокумент родителя, используя $ pull. Теперь, как я могу удалить поддокумент в своей собственной схеме? Мне жаль, если это не имеет никакого смысла, node.js newb здесь. :)Удалить ссылочный документ в mongoose

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); 
     } 
}); 
Смежные вопросы