【问题标题】:Delete mongodb document by id in express js在express js中按id删除mongodb文档
【发布时间】:2018-01-09 08:39:15
【问题描述】:

我为此费尽心思...试图按 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

在尝试查找记录时,它按预期工作。

【问题讨论】:

    标签: node.js mongodb express


    【解决方案1】:

    知道了。 首先我需要 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 })
    });
    

    【讨论】:

      【解决方案2】:

      错误表明 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 })
      });
      

      【讨论】:

      • 如果要删除多个id怎么删除
      • 如果您只需要一种方法,最好为此创建一个特定的方法并在正文中的一个字段中传递所有 id
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2016-07-27
      相关资源
      最近更新 更多