mongoose.findOneAndUpdate() 更改保存在我的 Express 应用程序中的值



我发现另一个人询问值覆盖,但没有得到回答。希望有人能指出我错过的愚蠢的东西!这是要点...

var vote = req.body.vote;
var boolVote;
(vote === 'good') ? boolVote = true : boolVote = false;
                           //  these square brackets were the issue  ----------/
Model.findOneAndUpdate({firstname:'Jane'},{$set:{'event.attempt.judge1':[boolvote]}},
                  {new: true},(err,lifter)=>{console.log(lifter.event.attempt.judge1})

我将其削减为基本功能,因为程序内的 boolVote 将控制台.log作为正确的值(如果 vote==='good'则为 true,否则为 false(,但无论我如何重新排列内容,它总是更新到数据库为真......

最初布尔投票是这样的

var boolVote = ()=>(vote === 'good') ? true : false;

这也不起作用。我可以毫无问题地更改 mongo CLI 中的值。

是否有其他人在将 FALSE 值保存到 MongoDB 时遇到问题?如果是这样,需要什么才能让它工作,如果不是,我做错了什么???

提前感谢您的任何帮助,我在这里拉头发。

你可以这样简单地写三元,我不熟悉js,但在其他程序语言中,java语法如下

var boolVote = vote === 'good'  ? true : false;

var boolVote = ( vote === 'good' )  ? true : false;

但是当你这样做时

var boolVote = () => ( vote === 'good' )  ? true : false;

这里boolVote是一个没有参数的Function,所以你需要调用boolVote()来获取它的值

编辑

event.attempt.judge1 是一个字段,但是当在 update 方法中用方括号括起来作为数组时,无论真/假,非空数组都解析为 true,在数据库中更新相同

Model.findOneAndUpdate(
    {firstname:'Jane'},
    {$set:{'event.attempt.judge1':boolvote}}, //removed []
    {new: true},
    (err,lifter)=>{console.log(lifter.event.attempt.judge1)}
)

相关内容

  • 没有找到相关文章

最新更新