Mongo致命错误

时间:2012-03-08 06:09:06

标签: php mongodb

我正在使用php和mongo db ...我想使用userkey获取用户详细信息,这是一个独特的

key ..我的mongo查询是:

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

当我执行此查询时,收到错误为..

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

即$ exist = $ obj-> findone($ filter);显示错误

如何解决这个问题

有人能帮助我吗...

1 个答案:

答案 0 :(得分:0)

你能让任何mongo查询工作,还是只是这个失败?它可能是您与数据库的连接。我相信“findone()”会在停滞的连接上永远等待。我建议改为使用“find()”,并给它一个低超时,比如100ms。这可能会有所帮助。

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

显然,您需要将其包装在try / catch块中以捕获超时异常。一定要使用最新的mongo驱动程序(1.2.10或更高版本),因为早期版本的php mongo驱动程序会在连接超时时出现段错误。