大数据

时间:2016-03-14 07:23:46

标签: php mongodb aggregation-framework

我编写了一个聚合框架(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数据库驱动程序(旧版)

有人可以帮我解决这个问题吗?

由于

1 个答案:

答案 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