Курсоры не могут дать несколько итераторов ошибки mongodb для PHP - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть простая запись, которая должна возвращаться на основе запроса.Как только я пытаюсь получить результаты, я получаю следующую ошибку:

Курсоры не могут выдавать несколько итераторов

Код, который я имею, очень прост:

    $db = \core\databaseUtilities\getDbConnection();

    $filter = [ 'email' => $email ]; 
    $query = new \MongoDB\Driver\Query($filter);

    $res = $db->executeQuery($db->dbName.".users", $query);
    $records = $res->toArray();

В последней строке происходит сбой.

В Интернете я нашел несколько примеров кода о том, как сделать запрос, они все выглядят одинаково.Вот ссылка, которую я использовал: http://php.net/manual/en/class.mongodb-driver-cursor.php

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вы можете использовать PHP * iterator_to_array функцию, как предложено в примере документации MongoCursor:

$res = $db->executeQuery($db->dbName.".users", $query);
$records = iterator_to_array($res);
0 голосов
/ 19 февраля 2019

Я нашел проблему, и она не имела ничего общего с кодом.Я отправляю ответ, поскольку другие могут столкнуться с той же самой проблемой.Это было связано с моим кодом IDE Visual Studio.Тем не менее, я предполагаю, что это не может быть ограничено моей IDE.Проблема была в том, что я наблюдал за $ res-> toArray ();поэтому к тому моменту, когда код перешел к последней строке в моем примере, он пытался повторить снова.Как только я снял часы, мои проблемы исчезли, никаких изменений кода не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...