0

node.jsとmongodb-wrapperを介してmongodbからエントリを選択/削除しようとしています。httpリクエストを介してエントリのIDを文字列として取得します。次に、特定のIDのエントリを削除します。

app.delete('/posts/:id', function(req, res) {
res.header("Access-Control-Allow-Origin", "*");
db.posts.remove({"_id": req.params.id}, function(err) {
    if (err) return res.send(err.message, 500); // server error
    res.send(200);
  })
res.send("ok");
});

しかし、これは機能していません。私はすでにいくつかの方法を試しましたが、エントリを削除するものはありません。文字列をObjectIdに変換する必要がある赤いものがありますが、これまで、mongodb-wrapperを介してこれを行う方法は見つかりませんでした。

4

1 に答える 1

1

使用することにより:{"_id": req.params.id}objectIdではなく文字列をクエリします。ObjectId文字列を使用するには、文字列からを作成する必要があります。

var ObjectID = require('mongodb').ObjectID;
var oid = new ObjectID(req.params.id);

req.params.idのデータを有効なObjectIDに変換できない場合、これによりエラーがスローされることに注意してください。

于 2012-04-10T19:10:06.687 に答える