ThinkPHP3.2.3 MongoDB驱动严重问题!!!!

浏览:1267 发布日期:2016/04/26 分类:求助交流 关键字: BUG mongo mongodb 数据库
最新版3.2.3完整版MongoDB驱动类,
在执行自增值$inc时,类似于MySQL的(字段=字段+2)这种功能。

$model->where($where)->save(array("money"=>array("inc", 0.8)));
执行上面代码,money将不增加任何数据。最后终于找到原因

ThinkPHP\Library\Think\Db\Driver\Mongo.class.php
589行                    case 'inc':
                        $result['$inc'][$key]  =  (int)$val[1];
                        break;
此时强制转换为int,如果是货币类型有小数点情况下。小数点直接抹掉。
真是搞不清楚驱动作者是怎么想的。MongoDB适用场景有那么窄么?

不知道有多少人因为这个BUG被坑!!

临时解决方案,将(int)修改为(double)。
最佳答案
评论( 相关
后面还有条评论,点击查看>>