我尝试连接到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));
答案 0 :(得分:0)
我发现了这个问题。 虽然使用聚合集合名称应该为null,它将填充管道变量。
执行聚合命令后,我们应该将它转换为PHP中带有以下代码的数组$db = $mongo->selectCollection("tourism","languages");
$ops = [['$match'=>['code'=>'fa']]];
$results = $db->aggregate($ops);
$results = current($results->toArray());