我对php在mongoDB中保存数据的方式有问题。 我有一个.csv文件,其中我有一个必须是布尔值的字段,所以我为它添加'假'。 当我从.csv用php读取它时,该值是一个'字符串',由mongoDB解释为一个非空字符串,这会产生一个'true'值字段。 有没有办法像布尔值一样读取它?
我找到了一个可以部分解决我的问题的答案(How to convert string to boolean php),但是我想避免那个部分并像bool一样阅读它,或者至少将其保存为mongoDB中的bool,值为'false' => false,而不是'false'=>真
答案 0 :(得分:1)
一个简单但很脏的修复方法是检查值并相应地指定一个布尔值。
$var = (var === 'true') ? true : false;
或者你甚至可以制作一个有可能的阵列。
$var = (in_array($string, array('1', 'true', true))) ? true : false;
我知道这不是一个完美的解决方案,但它仍然有用。
我已经做了一些阅读,发现你也可以使用FILTER_VALIDATE_BOOLEAN
过滤器。
// This will return either true or false
$var = filter_var($csvValue, FILTER_VALIDATE_BOOLEAN);