使用聚合时出现MongoDB错误:" allowDiskUse" =>真正

时间:2018-05-31 13:39:45

标签: php mongodb aggregation-framework aggregate

我收到mongo错误:读取0字节后读取超时,等待30.000000秒,当我使用聚合排序时。

在本地它可以正常工作,但在服务器上它会出错。

我正在使用mongo 3.2

这是我的汇总

$collection->aggregate(
            [
                array('$unwind' => '$skills.skill'),
                array('$match' => array('skills.skill.name' => $str)),
                array('$unwind' => '$skills.skill.value'),
                array('$sort' => array('skills.skill.value.value' => -1) ),
                array('$group' => array('_id' => null, 'updates' => array('$push' => '$skills.skill.value') )),
                array('$project' =>  array('value' => '$updates'))
            ],
            array("allowDiskUse" => true)
        );

首先,我使用不带allowDiskUse选项的聚合,我收到错误:排序超出内存限制104857600字节,然后我添加了选项:allowDiskUse : true我得到错误:Read timed out after reading 0 bytes, waited for 30.000000 seconds

如何解决这个问题?

我尝试了$cursor->timeout(-1),但没有结果。

0 个答案:

没有答案