在快递js中按id删除mongodb文档

时间:2018-01-09 08:39:16

标签: node.js mongodb express

我正在拉我的头发......试图通过id删除文件:

router.delete('/api/menu/delete/:id', function (req, res) {
  var id = req.params.id;
  db.get().collection('menu', function (err, col) {
   col.deleteOne({_id: new mongodb.ObjectID(id)});
  });
  res.json({ success: id })
});

总是得到:

Cannot read property deleteOne of undefined

当试图查找记录时,它按预期工作。

2 个答案:

答案 0 :(得分:2)

知道了。 首先我需要mongodb

mongo = require('mongodb')

然后:

router.delete('/api/menu/delete/:id', function (req, res) {
  var id = req.params.id;
  var collection = db.get().collection('menu');

  collection.deleteOne({ _id: new mongo.ObjectId(id) }, function (err, results) {
  });

  res.json({ success: id })
});

答案 1 :(得分:0)

错误表明col未定义。 可能你是以错误的方式获得该集合。如果您使用的是官方mongo驱动程序,请尝试通过createCollection更改方法集合,如下所示:

router.delete('/api/menu/delete/:id', function (req, res) {
  var id = req.params.id;
  db.get().createCollection('menu', function (err, col) {
   col.deleteOne({_id: new mongodb.ObjectID(id)});
  });
  res.json({ success: id })
});