You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用三元运算符处理SQL转Mongo的三种字段值转换是否可行

解答:SQL转Mongo时的字段转换三元运算符问题

你在SQL转Mongo的数据迁移中遇到的这个字段转换需求挺常见的,先看你给出的这段代码能不能达成目标:

saved: data.saved && data.saved === 1 ? true : data.saved && data.saved === 0 ? false : null

很遗憾,这段代码不能正确实现你的需求,问题出在0的处理上:

  • 当data.saved是0时,第一个条件里的data.saved && data.saved ===1会因为0在逻辑与运算中被视为假值,直接跳过第一个分支进入else;
  • 接着第二个条件data.saved && data.saved ===0,0 && true的结果还是0(假值),所以会走到最后的null分支,把原本应该转成false的0错误地变成了null。

那怎么修正呢?其实不需要用逻辑与来前置判断,直接用严格相等匹配就可以,这样能避免真值假值的干扰:

saved: data.saved === 1 ? true : data.saved === 0 ? false : null

这样就能准确处理三种情况:

  • 当值严格等于1时返回true
  • 当值严格等于0时返回false
  • 当值是null(或者其他未匹配的值)时返回null

如果想要更严谨一点,也可以先判断null,逻辑会更清晰:

saved: data.saved === null ? null : data.saved === 1 ? true : false

这个写法和上面的效果是一样的,看你个人习惯选择就行。

内容的提问来源于stack exchange,提问作者Muirik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:11:28