2013-04-18 3 views
0

Je reçois l'erreur suivante lors de l'utilisation de la fonction aggregate() de MongoDB dans un code PHP. Ce code fonctionne parfaitement sur ma configuration locale qui exécute MongoDB 2.2.3MongoCollection :: aggregate() est indéfini dans PHP Heroku utilisant MongoHQ

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

code

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) 
            )); 
} 

Environnement

  • PHP sur Heroku
  • MongoDB 2.2. 4 avec MongoHQ Add-on
+2

Ceci est normalement causé par un ancien pilote, vous voudrez mettre à jour le pilote pour votre installation MongoDB – Sammaye

+1

La méthode agrégée a été introduite dans 1.3.0. On dirait que vous exécutez 1.2.xx:] – bjori

+0

Résolu. J'ai compilé le pilote PHP MongoDB par moi même dans l'environnement Heroku. Merci – coder9

Répondre

0

Vous devez regarder dans votre phpinfo()

Si dans la version que vous voyez quelque chose de moins que 1.3.0, il ne fonctionnera pas.

enter image description here

Aller à mongo driver page télécharger et ajouter pilote approprié. Redémarrez le serveur et cela fonctionnera.

Questions connexes