mongodb-wrapper和条目的ObjectId

时间:2012-04-10 18:34:37

标签: javascript node.js mongodb

我正在尝试通过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的方法。

1 个答案:

答案 0 :(得分:1)

使用:{"_id": req.params.id}您正在查询字符串而不是objectId。您需要从字符串中创建ObjectId才能使用它:

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

请注意,如果req.params.id中的数据无法转换为有效的ObjectID,则会抛出错误。