繁体   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