【问题标题】:MongoCollection::aggregate() is undefined in Heroku PHP using MongoHQMongoCollection::aggregate() 在 Heroku PHP 中使用 MongoHQ 未定义
【发布时间】:2013-04-18 03:17:57
【问题描述】:

在 PHP 代码中使用 MongoDB 的 aggregate() 函数时出现以下错误。这段代码在我运行 MongoDB 2.2.3 的本地设置上完美运行

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

环境

  • Heroku 上的 PHP
  • 带有 MongoHQ 插件的 MongoDB 2.2.4

【问题讨论】:

  • 这通常是由旧驱动引起的,您需要为您的 MongoDB 安装升级驱动
  • 聚合方法是在1.3.0中引入的。看起来你正在运行 1.2.xx :]
  • 已解决。我在 Heroku 环境中自己编译了 PHP MongoDB 驱动程序。谢谢

标签: php mongodb heroku mongodb-php mongohq


【解决方案1】:

你必须查看你的phpinfo()

如果您在版本中看到小于1.3.0 的内容,则它将不起作用。

转到mongo driver page 下载并添加适当的驱动程序。 重启服务器就可以了。

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 2013-01-22
    • 2012-02-22
    • 2011-10-21
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多