0

私は何かを誤解しているかもしれませんが、クライアントではサーバーにリクエストを送信しています。何かのようなもの:

$.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対応するレコードのみが削除されるようにするために、他に何かする必要がありますか? エントリが無効な場合、すべてのレコードを削除するのはなぜですか?

4

1 に答える 1

3

リファレンスを使ってみるResource.findOneAndRemove

私はそれを使用したことはありませんが、これは私が使用するものであり、私にとっては完璧に機能します

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);
        });
    }
});
于 2013-08-07T13:51:12.507 に答える