0

我已将 php5 升级到 php7。如果我使用 mongoClient 进行 mongodb 连接,则会显示错误。所以我使用了以下命令。

$manager = new MongoDB\Driver\Manager("mongodb://".MONGOHOST.":27017");

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

用于数据库连接

$m = new MongoClient('mongodb://'.MONGOHOST.'', array('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 天,但没有找到解决方案。

4

1 回答 1

0

您不能使用 mongoClient。
你必须使用Mongodb 管理器
http://php.net/manual/en/class.mongodb-driver-manager.php

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

$command = new MongoDB\Driver\Command([
    'aggregate' => 'collection',
    'pipeline' => [
        ['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
    ],
    'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);
于 2018-04-18T09:34:28.037 回答