【发布时间】:2017-01-10 17:54:52
【问题描述】:
我有这个代码:
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 作为数组在...
【问题讨论】:
-
您的 find 语句将返回一个游标,该游标将存储在 $document 变量中,您接下来要做什么?向我们展示整个代码。
-
@Vincent 现在我更新了问题,这是完整的代码。
-
@Vincent 我实际上链接了 toArray 方法,现在该行看起来像这样:
$document = $collection->find(["messages.payload.headers.value"=>"kruno@ulix.com"])->toArray();但它真的吃掉了所有的 RAM -
是的,这是有效的,尝试使用 foreach 进行迭代,看看是否可行,如果 toArray() 正在耗尽你的内存。
标签: php mongodb php-7 php-mongodb