Php 如何在Mongodb中使用聚合函数?

Php 如何在Mongodb中使用聚合函数?,php,mongodb,aggregation-framework,php-mongodb,Php,Mongodb,Aggregation Framework,Php Mongodb,我已将php5升级为php7。若我将mongoClient用于mongodb连接,它会显示错误 $manager=newmongodb\Driver\manager(“MongoDB://.”.MONGOHOST.:27017”) 通过使用上面的命令,我可以连接数据库。现在的问题是在php5中,我使用了聚合函数。它在php7中不支持。下面提到的php5中使用的代码 用于数据库连接 $m=newmongoclient('mongodb://'.MONGOHOST'',数组('username'=>

我已将php5升级为php7。若我将mongoClient用于mongodb连接,它会显示错误

$manager=newmongodb\Driver\manager(“MongoDB://.”.MONGOHOST.:27017”)

通过使用上面的命令,我可以连接数据库。现在的问题是在php5中,我使用了聚合函数。它在php7中不支持。下面提到的php5中使用的代码

用于数据库连接

$m=newmongoclient('mongodb://'.MONGOHOST'',数组('username'=>MONGOUSER,'password'=>MONGOPASS,'db'=>mongodb));
$db=$m->selectDB(MONGODB)

要从数据库中检索值,请执行以下操作:

$ops = array(
        array(
             '$match'=>array(
                "datetime"=>array('$gte'=>$start,'$lte'=>$end)
                )
            ),
        array(
            '$group' => array(
                "_id" => array("slotid" => '$slotid',"bidder" => '$bidder',"viewerid" => '$viewerid',"mediatype"=>'$mediatype'),"total" => array('$sum' => 1),"sitename" =>array('$addToSet' => '$sitename'),"aid" =>array('$addToSet' => '$accountid'),
                ),
            ),
        );
$reqbids=$db->requestbids->aggregate($ops)


如何使用mongo驱动程序进行此操作。我已经搜索了2天,但没有找到解决方案。

您不能使用mongoClient。
您必须使用Mongodb管理器

对于聚合函数,请使用以下代码。
$conn=new MongoDB\Driver\Manager(“mongodb://127.0.0.1");


我已经改变了我上面提到的查询方式。在php5中我使用了$addToSet,但在php7中不支持它。你知道如何使用错误的驱动程序吗。通常称为驱动程序的是用于“userland”应用程序(如您的应用程序)的驱动程序。您安装的驱动程序是一个“低级”接口,供编写自己的高级抽象的“驱动程序”作者使用。有关简单的图形表示,请参见。安装正确的驱动程序并重新启动。aggregate等方法也存在于此,就像它们在其他语言驱动程序中一样。
$command = new MongoDB\Driver\Command([
    'aggregate' => 'collection',
    'pipeline' => [
        ['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
    ],
    'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);