我正在尝试根据ID删除记录。我通过get动词发送ID,并从req.params.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)

关于node.js - Mongojs&Express-无法通过ID删除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24233557/

10-10 00:42
查看更多