2015-07-13 2 views
0

У меня есть следующий мангуст схема:Как вы находите и удаляете поддокум Mongoose внутри массива по его идентификатору?

{ 
    name: String, 
    subArray: [ 
     { 
      subName: String, 
      subNumber: Number 
     } 
    ] 
} 

я добавил объекты в Подмассив, которые получают автоматически присваиваются "_id". В Node.js, как мне найти объект по "_id" внутри subArray и удалить его?

ответ

3

Вы можете se mongoose findOneAndUpdate вместе с $pull Оператор. Так что-то вроде следующий будет работать (непроверенные):

Model.findOneAndUpdate({'subArray._id' : '55a19992474e7ded6b4ae2b0'} , 
    { 
    $pull: { subArray: { _id: '55a19992474e7ded6b4ae2b0' }} 
    } 
    {new: true}, 
    function(err, doc){ 
    console.log(err,doc) 
}) 
+0

Это сработало! Спасибо огромное! – Jackmc1047

0

небольшой коррекции для указанного выше кода sefgment

ProductContact.findOneAndUpdate({'productRoles._id':req.params.product_role_id}, 
{ 
    $pull: { productRoles: {_id:req.params.product_role_id }} 
},{new:true}, 
function(err, productcontact) { 
    if(err) 
    res.send(err);res.json({message: 'Role successfully deleted.'}); 
}) 
Смежные вопросы