2013-04-18 4 views
0

PHP 코드에서 MongoDB의 aggregate() 함수를 사용할 때 다음 오류가 발생합니다. 이 코드는 완벽하게 Heroku가 MongoHQ를 사용하여 Heroku PHP에서 MongoCollection :: aggregate()가 정의되지 않았습니다.

  • MongoDB를 2.2에
    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) 
                )); 
    } 
    

    환경

    • PHP MongoDB를 2.2.3

      실행되고있는 내 로컬 설정에서 작동합니다. 4 with MongoHQ Add-on
  • +2

    이것은 일반적으로 이전 드라이버 때문에 발생합니다. MongoDB 설치용 드라이버를 업그레이드하고자 할 것입니다. – Sammaye

    +1

    집계 메소드는 1.3.0에서 도입되었습니다. 당신이 1.2.xx를 실행하는 것 같습니다 :] – bjori

    +0

    해결되었습니다. Heroku 환경에서 PHP MongoDB 드라이버를 컴파일했습니다. 감사 – coder9

    답변

    0

    당신은 버전에 당신이 1.3.0보다 적은 것을 볼 경우 phpinfo()

    는, 그것은 작동하지 않습니다 당신으로보고있다.

    enter image description here

    mongo driver page 다운로드로 이동하여 해당 드라이버를 추가합니다. 서버를 다시 시작하면 작동 할 것입니다.