2012-04-10 95 views
0

我试图通过node.js和mongodb-wrapper从我的mongodb中选择/删除条目。 我通过http请求获取条目的id作为字符串。 然后我想删除具有特定ID的条目。mongodb-wrapper和条目的ObjectId

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包装来做到这一点。

+0

[这] [1]的问题可能会帮助你。 [1]:http://stackoverflow.com/questions/4902569/node-js-mongodb-select-document-by-id-node-mongodb-native – 2012-04-10 18:49:35

+0

我已经在那里......但我再次看了一遍,发现我的问题:) – soupdiver 2012-04-10 19:10:50

回答

1

通过使用:{"_id": req.params.id}您正在查询字符串而不是objectId。你需要创建一个字符串的ObjectId使用它:

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

知道,这将抛出一个错误,如果在req.params.id的数据不能转换为有效的对象ID。