Ошибка MongoDB при использовании агрегации: "allowDiskUse" => true - PullRequest
0 голосов
/ 31 мая 2018

Я получаю ошибку Монго: Тайм-аут чтения после чтения 0 байт, ожидание 30,000000 секунд , когда я использую сортировку агрегации.

В локальной системе она работает правильно, но на сервере онавыдает ошибку.

Я использую монго 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

Как решить эту проблему?

Iпробовал $cursor->timeout(-1), но без результатов.

...