簡體   English   中英

貓鼬不更新MongoDB文檔

[英]Mongoose not updating the MongoDB document

這是我用來更新mongoDB中文檔的nodejs代碼,req.body包含作為對postjs服務器的發布請求發送的文檔,它不會引發任何錯誤,但也不會更新文檔,任何建議為什么會這樣?

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

感謝您的支持,嘗試了您的解決方案JohnnyHK,但沒有成功,但是找到了一種更新文檔的方法,必須將req.body字段分配給對象的字段,這里:

router.route('/results').post(function(req,res){
    Question.findOne(req.body._id, function (err, questions) {
      if (err) return handleError(err.stack);
               questions.question = req.body.question;
                questions.options = req.body.options; 
                questions.difficulty = req.body.difficulty;
                questions.type = req.body.type;
                questions.answer = req.body.answer;
                questions.domainof = req.body.domainof;
                questions.topic = req.body.topic;
                questions.weightage = req.body.weightage;        
                questions.created_by = req.body.created_by;
    questions.save(function (err){
    if (err) return handleError(err.stack);
        console.log(questions);
      });
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM