我编写了一个聚合框架(mongoDb PHP)的查询,它在几天前工作正常但现在随着记录的增加,查询返回 MongoCursorTimeoutException
127.0.0.1:27017: Read timed out after reading 0 bytes, waited for 30.000000 seconds
我的查询是
$cursor = $collection->aggregateCursor(array(
array('$match' => $condition),
array('$project' => $project),
array('$group' => array(
'_id' => $group,
'counts' => array( '$sum' => 1)
))),
array('allowDiskUse' => true, "maxTimeMS" => 300000)
);
我还在Jira创建了一张票,但仍然没有回复
还想提及 maxTimeMS 选项不起作用
mongoDb版本是v2.6.4
1.6.6 MongoDB数据库驱动程序(旧版)
有人可以帮我解决这个问题吗?
由于
答案 0 :(得分:1)
当我在我的应用程序中使用Doctrine MongoDB ODM模块时,我通过以下方式修复了我的问题。 在我的连接配置文件socketTimeoutMS中,如MongoDB PHP Docs
中所述'doctrine' => array(
'connection' => array(
'odm_default' => array(
'server' => '127.0.0.1',
'port' => '27017',
'dbname' => 'affiliate',
'options' => array('socketTimeoutMS' => 9000000)
),
)
您可以获得有关它的更多详细信息https://github.com/doctrine/DoctrineMongoODMModule。