Php 如何在Mongodb中使用聚合函数?
我已将php5升级为php7。若我将mongoClient用于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'=>
$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);