2013-04-18 4 views
0

Я получаю следующую ошибку при использовании функции aggregate() MongoDB в PHP-коде. Этот код прекрасно работает на моей локальной настройки, которая работает MongoDB 2.2.3MongoCollection :: aggregate() не определен в Heroku PHP с помощью MongoHQ

PHP Fatal error: Call to undefined method MongoCollection::aggregate() in /app/www/page.php on line 52, referer: http://referrer.url 

Код

foreach($cats as $key=>$val){ 
    $cats2[$val['lable']] = $myCollection->aggregate(array(
           array('$match' => array('user_id' => $user_id)), 
           array('$unwind' =>"\$data"), 
           array('$match' => array('data.category'=> $val['category'])), 
           array('$project' => array('name'=> "\$data.name", 'id'=>"\$data.id")), 
           array('$group' => array('_id'=>'$id', 'name'=> array('$first' =>'$name'))), 
           array('$limit' => 12) 
            )); 
} 

Environment

  • PHP на Heroku
  • MongoDB 2.2. 4 с MongoHQ Add-on
+2

Это обычно вызвано старым драйвером, вам нужно будет обновить драйвер для установки MongoDB. – Sammaye

+1

. Комбинированный метод был введен в 1.3.0. Похоже, вы используете 1.2.xx:] – bjori

+0

Решено. Я скомпилировал драйвер PHP MongoDB самостоятельно в среде Heroku. благодаря – coder9

ответ

0

Вы должны смотреть на ваш phpinfo()

Если в версии, которую вы видите что-то меньше, чем 1.3.0, то он не будет работать.

enter image description here

Перейти к mongo driver page скачать и добавить соответствующий драйвер. Перезагрузите сервер, и он будет работать.