2015-11-21 3 views
1

Я сделал успокоительный удалить, чтобы удалить запись по идентификатору .. Это не вернуть мне какую-либо ошибки, но запись не удаляется в моей коллекцииУдалить() не работает в mongodb?

моего маршрута

app.delete('/api/genres/:id',function(req,res){ 
    var id = req.params._id; 
    var genre = req.body; 
    Genres.deleteGenre(id, function(err,genre){ 
     if(err){ 
      throw err; 
     } 
     res.json(genre) 
    }) 
}); 

моя модель (Я использую мангуста)

//Delete Genre 
module.exports.deleteGenre = function (id, callback) { 
    var query = {_id: id}; 
    Genre.remove(query, callback); 
} 

даже вернуть статус ОК с

{"ok":1,"n":0} 
+0

ли идентификатор ObjectId или что? – Enrichman

+0

У вас есть правильный идентификатор? var id = req.params._id должен быть var id = req.params.id без подчеркивания? –

+0

@ korven nope, я могу передать правильный идентификатор –

ответ

2
app.delete('/api/genres/:id',function(req,res){ 
    var id = req.params.id; 
    Genres.deleteGenre(id, function(err,genre){ 
     if(err){ 
      throw err; 
     } 
     res.json(genre) 
    }) 
}); 

//Delete Genre 
module.exports.deleteGenre = function (id, callback) { 
    var query = {_id: id}; 
    //use this to findByIdAndRemove in mongoose, it will work 
    Genre.findByIdAndRemove(query, callback); 
} 

Вам не нужно ничего брать в var genre = req.body Попробуйте это !!!

Happy Coding !!!

+0

cast to objectId failed for value "[object object]" по адресу пути –

+2

использовать req.params.id вместо req.params._id –

+0

ew это была опечатка! Я сейчас сумасшедший! –

1

использование findById, чтобы получить документ первый, то вы сможете удалить их

Genre.findById(req.params.id, function(err, genre){ 
    if(err) { return res.send(500, err); } 

    genre.remove(function(err){ 
     if(err) { return res.send(500, err); } 
     return res.send(204); 
    }); 
});