gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:35 24 4
gpt4 key购买 nike

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

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 会将 console.log 作为正确值(如果 vote==='good' 则为 true,否则为 false),但无论我如何重新安排内容,它总是会更新为DB 为真...

本来boolVote是这样的

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 是一个字段,但是当在更新方法中用方括号括起来作为数组时,无论 true/false,非空数组都会解析为 true,在 db 中更新相同

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

关于node.js - mongoose.findOneAndUpdate() 更改保存在我的 Express 应用程序中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com