2016-03-23 2 views
-1

Я использую MongoDb и NodeJs, и у меня есть небольшая проблема с удалением объекта из массива объектов. Вот мой кодКак удалить объект из массива в mongodb?

router.route('/deleteGuestFromJam/:id').delete(function(req, res){ 

Jam.find({_id: req.params.id}, function(err, jam){ 

    jam.guests = _.without(jam.guests, _.findWhere(jam.guests, {id: req.user.id})); 

    jam.save(function(err, jam) { 
     if (err){ 
      return res.status(500).send(err) 
     } 
     console.log(jam.guests) 
     return res.status(200).send(jam); 
    }); 

}) 

И когда я называю этот маршрут консоли дать мне «jam.save не является функцией» ошибка. Кто-то может объяснить мне, почему это происходит? Thx ответы

+1

Ваше название, похоже, не связано с фактическим вопросом, который вы задаете в конце своего сообщения. Исправьте заголовок, чтобы соответствовать теме вашего вопроса. – jfriend00

ответ

1

Вы можете использовать обновление как этот

Jam.update({_id: req.params.id}, 
    { $pull: { 
      guests: { 
        $elemMatch: { id: req.user.id } 
      } 
     } 
    }, function(){....}); 

Это будет вытащить подходящий объект из квестов массива. См. Mongo docs here

Смежные вопросы