laravel-mongo对不同类型同值的数据处理

最近敲代码的时候发现,laravel-mongo 在 ORM 的时候,如果用 save 更新一个值,类型不同但值相同,是不会写入 db 的…

举个栗子:

1
2
3
4
$data = new Data();
$data->_id = 1;
$data->a = 123;
$data->save();

那么mongo里面就是 a: int32 = 123

这时候如果再

1
2
3
$data = Data::find(1);
$data->a = '123';
$data->save();

问题就来了…

mongo 里面的值还特么的是 a: int32 = 123

并没有被更新成 a: string = '123'

但是如果是个不同类型不同值

1
2
3
$data = Data::find(1);
$data->a = '321';
$data->save();

就会被更新成 a: string = '321'

这个问题略蛋疼啊…

『縁りて此の葉は紅に』2018年1月26日発売予定! 『縁りて此の葉は紅に』2018年1月26日発売予定!