2016-12-05 5 views
0

Привет, я пытаюсь удалить объект в моем mongodb с помощью nodejs. Вот мой код:Удаление объекта в mongodb с помощью nodejs вызывает ошибку

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'); 
}); 
Смежные вопросы