我正在尝试根据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
});
});
我意识到我需要添加" ObjectId"在req.params.id之前。但是,连接不起作用。到目前为止我有这个。还有另一种方式:
//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);
});
});
答案 0 :(得分:7)
我用它来访问它:
db.ObjectId(req.params.id)
答案 1 :(得分:2)
可以通过以字符串形式传递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取决于您使用的驱动程序。