【问题标题】:deleting object in mongodb using nodejs causing error使用nodejs删除mongodb中的对象导致错误
【发布时间】:2016-12-05 16:48:11
【问题描述】:

您好,我正在尝试使用 nodejs 删除我的 mongodb 中的对象。这是我的代码:

module.exports.deletetopic = function (req, res) {
//var id = JSON.parse(req.body)._id;
var idd = req.query.id;
console.log('iddd dans serveur ' + idd);
Topic.findById(idd, function(err, topic) {
  if (err) throw err;


//console.log(topic.title);

  topic.delete(function(err) {
    if (err) throw err;

    console.log('Topic successfully deleted!');
  });

});
}

但我收到以下错误:topic.delete is not a function

这是我在客户端的调用方式:

$scope.deletetopic = function (id) {
  console.log('id est de ' + id);
  $http.delete('/api/deletetopic', {params:{id:id}});
  }

你能帮忙吗

【问题讨论】:

  • 应该是 topic.remove 而不是 topic.delete。
  • @shubhamsaini 成功了,谢谢你为什么不回答这个问题,我会接受

标签: angularjs node.js mongodb mean-stack


【解决方案1】:

您应该使用 db.collection.remove() 从 MongoDb 的集合中删除文档。

topic.remove(function(err) {
   if (err) throw err;
   console.log('Topic successfully deleted!');
});

还建议您遵循这些做法。

Topic.findById({id: idd}, function(err, topic) {
...
...
if(topic){
   // your query
}
else{
   console.log('some message');
}

【讨论】:

    【解决方案2】:

    您可以使用ModelName.remove({_id:receivedId})删除文档

    Topic.remove({_id:idd}).exec(function (err,doc) {
      if (err) {
        return res.status(400).send('Error while deleting');
      }
      if(doc.result.n != 0){
        return res.status(200).send('Deleted');
      }
      return res.status(400).send('Not found');
    });
    

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 2022-06-10
      • 2017-07-06
      • 2016-12-28
      • 2021-07-06
      • 1970-01-01
      • 2014-05-30
      • 2010-11-07
      • 2017-06-11
      相关资源
      最近更新 更多