我发现另一个人询问值覆盖,但没有得到回答。希望有人能指出我错过的愚蠢的东西!这是要点...
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)}
)