无法在find方法中将数组作为参数传递

时间:2016-09-02 14:55:54

标签: php mongodb php-7 php-mongodb

我有这段代码:

require_once __DIR__ . "/vendor/autoload.php";

$collection = (new MongoDB\Client)->google_api->threadContents;

$document = $collection->find(["messages.payload.headers.value"=>"kruno@ulix.com"]);
echo "<pre>";
var_dump($document["id"]);

我正在尝试搜索符合特定条件的所有对象。当我使用findOne方法时,这完全符合我的要求,但当我使用find方法查找所有对象而不只是一个时,我得到下一个错误:

  

致命错误:未捕获错误:无法使用类型对象   MongoDB \ Driver \ Cursor作为数组...

1 个答案:

答案 0 :(得分:1)

PHP的MongoDB \ Driver \ Cursor实现了Traversable类,因此您可以使用foreach循环迭代结果,但不能像使用[]语句的数组那样直接访问它。 这样做,

foreach($document as $fields){
  print_r($fields);
}