Mongojs&Express – 无法通过ID删除

我正在尝试删除基于ID的logging。 我通过get动词发送ID并从req.params.id中获取ID。 我的代码不工作。 我究竟做错了什么?

//delete user router.get('/deleteuser/:id', function(req, res){ var db = req.db; db.users.remove({'_id':req.params.id}, function(err, docs) { if (err) return err; res.send(docs); // see results }); }); 

我意识到我需要在req.params.id之前添加“ObjectId”。 但是,连接不起作用。 我有这个到目前为止。 有另一种方法:

 //delete user router.get('/deleteuser/:id', function(req, res){ var db = req.db; var objId = 'ObjectId("' + req.params.id + '")'; console.log(objId); db.users.remove({"_id": objId}, function(err, docs) { //db.users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")}); works in mongo console if (err) return err; console.log(docs); res.send(docs); }); }); 

这工作:

// db.ObjectId(req.params.id)

 router.get('/deleteuser/:id', function(req, res){ var db = req.db; db.users.remove({"_id": db.ObjectId(req.params.id)}, function(err, docs) { //db.users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")}); if (err) return err; console.log(docs); res.send(docs); }); }); 

我使用这个访问它:

 db.ObjectId(req.params.id) 

通过在stringforms传递Id可以删除Id,不需要传递json。

 db.users.removeById(req.params.id, function(err, docs) { 

应该是进来的路线。

如果你想维护JSON语法,你就需要做类似的事情

 db.users.remove({'_id': new ObjectID(req.params.id)}, function(err, docs) { 

可以做到这一点。 ObjectID将取决于您使用的驱动程序。