Javascript Remove()在mongodb中不起作用?

Javascript Remove()在mongodb中不起作用?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我执行了restful删除以按id删除记录。。它没有返回任何错误,但未在我的收藏中删除该记录 我的路线 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;

我执行了restful删除以按id删除记录。。它没有返回任何错误,但未在我的收藏中删除该记录

我的路线

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)
    })
});
我的模型(我用的是猫鼬)

它甚至返回ok状态,并显示

{"ok":1,"n":0}
您不需要在var genre=req.body中获取任何内容 试试这个


快乐编码

首先使用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);
    });
});

这个id是ObjectId还是什么?你有正确的id吗?var id=req.params.\u id应该是var id=req.params.id,不带下划线?@korven不,我可以通过正确的idOf课程。MongoDB是著名的WORM数据库的典型例子。“记录”一经写入就无法修改。因为写操作是一种修改,所以您在这里运气不好再次严肃起来:当然,一般来说,这会减少工作量。下次您可能想选择一个更合适的标题。路径iduse req.params.id处的值“[object object]”转换为objectId失败,请使用req.params.id代替req.params。\u idew这是一个输入错误!我现在疯了!
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);
}
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);
    });
});