Монго фатальная ошибка - PullRequest
0 голосов
/ 08 марта 2012

Я использую php и mongo db ... Я хочу получить данные пользователя, используя userkey, который является уникальным

ключ .. Мой запрос монго:

       $obj= $mongo->user;
       $filter = array(
            'userkey'=>$value
        );
        $exist = $obj->findone($filter);

Когда я выполняю этот запрос, я получаю ошибку как ..

Fatal error: Maximum execution time of 30 seconds exceeded in line 5  

т.е. $ Существовать = $ Obj-> Findone ($ фильтр); показывает ошибку

Как решить эту проблему

Может кто-нибудь помочь мне, плз ...

1 Ответ

0 голосов
/ 21 мая 2012

Можете ли вы заставить работать любые монго-запросы, или это только тот, который терпит неудачу? Это может быть что-то с вашим подключением к базе данных. Я полагаю, что "findone ()" будет ждать вечно при остановленном соединении. Я бы порекомендовал вместо этого использовать «find ()» и дать ему небольшой тайм-аут, например, 100 мс. Это может помочь.

$ cursor = $ collection-> find ($ query, $ fields) -> timeout (100); $ record = $ cursor-> getNext ();

Очевидно, вы захотите обернуть это в блок try / catch для захвата исключения тайм-аута. Обязательно используйте последние версии драйверов mongo (1.2.10 или выше), так как более ранние версии драйверов php mongo могут привести к сбою по истечении времени ожидания соединения.

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