Mongoose从ID中删除了太多

时间:2013-08-07 13:45:49

标签: node.js mongodb mongoose

我可能误解了一些东西,但在客户端我发送了一个请求到服务器。类似的东西:

$.post("/resources/remove", {"id": 52024e25b26d39f931000003})

我在服务器上

Resource.remove({_id: request.body.id})

“ID”是正确的,并且使用具有相同参数的Resource.find将返回我要删除的记录。但是,运行此操作时,它会删除所有 Resource条记录。 exec(function (err, returnValue)的返回值是那里的Resource记录的数量,因此它肯定会删除所有记录。使用Remove.(request.body.id)做同样的事情。

我是否还需要执行其他操作以确保仅删除具有相应_id的记录?如果条目无效,为什么要删除所有记录?

1 个答案:

答案 0 :(得分:3)

尝试使用Resource.findOneAndRemove Reference

我从来没有使用过,但这是我使用的,它对我来说非常适合

PostModel.findOne({_id: id}, function (err, result) {
    if (err) {
        throw err;
    }
    if (result) {
        PostModel.remove({_id: id}, function (err, result) {
            if (err) {
                throw err;
            }
            res.json(200, result);
        });
    }
});