我正在使用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);显示错误
如何解决这个问题
有人能帮助我吗...
答案 0 :(得分:0)
你能让任何mongo查询工作,还是只是这个失败?它可能是您与数据库的连接。我相信“findone()”会在停滞的连接上永远等待。我建议改为使用“find()”,并给它一个低超时,比如100ms。这可能会有所帮助。
$ cursor = $ collection-> find($ query,$ fields) - > timeout(100); $ record = $ cursor-> getNext();
显然,您需要将其包装在try / catch块中以捕获超时异常。一定要使用最新的mongo驱动程序(1.2.10或更高版本),因为早期版本的php mongo驱动程序会在连接超时时出现段错误。