集合后集合名称已设置为null

时间:2018-02-19 20:32:45

标签: php mongodb match

我尝试连接到mongodb,如下所示

$mongo = new \MongoDB\Client();
$db = $mongo->selectCollection("tourism","users"); 

当我使用$ db变量来查找或插入或其他函数(与下面的代码相同)时,这没关系

object(MongoDB\Driver\Cursor)[66]
public 'database' => string 'tourism' (length=7)
public 'collection' => string 'users' (length=5)

但是当我尝试使用聚合时,集合名称已设置为null。

object(MongoDB\Driver\Cursor)[66]
public 'database' => string 'tourism' (length=7)
public 'collection' => null

它是我在PHP中的完整代码

$mongo = new \MongoDB\Client();
$db = $mongo->selectCollection("tourism","users");
$ops = [['$match'=>['key'=>'09216604502']]];
$results = $db->aggregate($ops);
exit(var_dump($results));

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。 虽然使用聚合集合名称应该为null,它将填充管道变量。

执行聚合命令后,我们应该将它转换为PHP中带有以下代码的数组

$db = $mongo->selectCollection("tourism","languages");
$ops = [['$match'=>['code'=>'fa']]];
$results = $db->aggregate($ops);
$results = current($results->toArray());