2012-04-10 97 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。