使用nodejs删除mongodb中的对象导致错误

时间:2016-12-05 08:18:15

标签: angularjs node.js mongodb mean-stack

您好我正在尝试使用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}});
  }

你能帮忙吗

2 个答案:

答案 0 :(得分:0)

您应该使用 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');
}

答案 1 :(得分:0)

您可以使用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');
});