Вот мой код агрегации для коллекции mongodb:
$mongo_db_name = "db_".$tenant_id;
$con = new MongoClient($this->config->item('mongo_instance'));
$db = $con->$mongo_db_name;
$collection = $db->$module;
$options = array('cursor' => array("batchSize" => 4 ));
$pipeline=array(
array('$match'=>array('deleted'=>'0')),
array('$group'=>array('_id' => array('id'=>'$id', 'accountnm' => '$account_name', 'legal___corporate_name_cstm' => '$legal___corporate_name_cstm', 'funded_by_cstm' => '$funded_by_cstm', 'approval_amount_cstm' => '$approval_amount_cstm', 'payback_amount_cstm' => '$payback_amount_cstm', 'factor_rate_cstm' => '$factor_rate_cstm', 'daily_ach_amount__1_cstm' => '$daily_ach_amount__1_cstm', 'total_commission_owed_cstm' => '$total_commission_owed_cstm', 'total_commission_paid_cstm' => '$total_commission_paid_cstm', 'upfront_amount_due_cstm' => '$upfront_amount_due_cstm', 'upfront_amount_due_date_cstm' => '$upfront_amount_due_date_cstm', 'date_modified' => '$date_modified'))),
);
$data = $collection->aggregate($pipeline,$options);
var_dump($data);
Я получаю эту ошибку с кодом выше
array (size = 4) ‘ok’ => float 0 ‘errmsg’ => string ‘Каждый элемент
массив ‘pipe’ должен быть объектом ‘(length = 54)’ code ‘=> int 14
‘codeName’ => строка ‘TypeMismatch’ (длина = 12)
Если я попытаюсь закодировать конвейер с помощью json_encode, результат будет нулевым.
Если я использую find(array('deleted'=>'0'));
он возвращает все документы, как ожидалось.
Может кто-нибудь помочь мне с тем, где я иду не так, или что я должен сделать, чтобы решить эту проблему?
Задача ещё не решена.
Других решений пока нет …