场景
. thinkphp3.2 封装了一个函数对mongo进行查询,爆出如上错误
. 事实上$in 绑定的的确是个数组, 如下
{"uid":{"$in":{"0":{"value":"12"},"2":{"value":"19"}}},"time":{"$gte":"20180724","$lte":"20180724"}}
解决
. 好吧, 就规范下$in绑定的数据, 下标 '0' '2' 不是正常的索引数组,格式化一下
/**
* int类型的数据转成mongoInt32的数据
* @param array $limit_source
* @return array
*/
protected function intToMongo($limit_source)
{
// 添加下面一行进行规范化的处理
$limit_source = array_values($limit_source);
return array_map(function ($item) {
return new \MongoInt32($item);
}, $limit_source);
}