2016-12-05 66 views
0

您好,我試圖使用nodejs刪除MongoDB中的對象。這裏是我的代碼:使用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}}); 
    } 

你能幫

+0

應該topic.remove不topic.delete刪除文件。 –

+0

@shubhamsaini它工作謝謝你爲什麼不回答這個問題,我會接受 –

回答

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'); 
} 
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'); 
});