Вот код nodejs, который я использую для обновления документа в mongoDB, req.body содержит документ, который был отправлен в качестве почтового запроса на сервер nodejs, , он не бросает никаких ошибки, но не обновляя документ, любые предложения, почему это происходит;Mongoose не обновляет документ MongoDB
router.route('/results').post(function(req,res){
var toupdate = req.body;
delete toupdate._id;
console.log(toupdate)
Question.update({_id:req.body._id}, toupdate, function(err){
if(err){
console.error(err.stack);
}
});
// even tried Question.update({_id:req.body._id}, {$set:{questions:toupdate.question}});
});
Я также попытался с помощью findById, а затем сохранить документ на этот раз получили 500 в качестве ответа:
router.route('/results').post(function(req,res){
var toupdate = req.body;
delete toupdate._id;
console.log(toupdate)
Question.findById(eq.body._id, function (err, tank) {
if (err){
console.log(err.stack);
return handleError(err);
}
toupdate.save(function (err){
if (err){
console.log(err.stack);
return handleError(err);
}
});
});
});
Второй аргумент для обратного вызова содержит ответ. Вызывайте эту функцию (err, response) ', затем отлаживайте ее в' console.log (response.response) '. Существуют ключи в объекте, где «n» - это количество страниц, на которое влияет «nMatched», количество соответствий условия запроса. Скорее всего, вы не согласны с документом. Проверьте определение схемы для типа данных, которые у вас есть в '_id'. Это существующая коллекция? mongoose ожидает, что он будет называться «вопросами», а не «вопрос» по умолчанию, если вы не переопределите это. –
получил undefined для console.log (res.response); нет никакой проблемы с схемой, поскольку я использую ее для поиска и вставки в другой маршрут в моем проекте, проблема возникает только в обновлении. –
'response.response' является результатом обратного вызова' .update() '. Не 'res' в экспресс-запросе. –