Mongo Db истекает, когда я выполняю работу группы над огромным набором данных - PullRequest
0 голосов
/ 06 ноября 2018

То, что у меня есть, - это удаление данных, которые могут содержать более миллиона записей в моей БД Монго. Каждый раз, когда я запрашиваю данные, я хочу сгруппировать эти огромные данные по номеру телефона и суммировать количество записей, которые есть у этого человека.

$data = $builder
        ->group()
        ->field('_id')->expression('$phone')
        ->field('listings')->sum(1)
        ->sort('listings', -1)
        ->match()
        ->field('listings')->gt(1)
        ->execute(array('allowDiskUse'=>true))->toArray();

Проблема в том, что теперь эта функция блокирует время ожидания и не возвращает данных из-за огромного количества операций обработки, которые она выполняет. Итак, есть ли способ выполнить этот запрос, не вызывая проблемы с производительностью или тайм-аут? Были некоторые предложения по использованию очереди, но я никогда не использовал ее раньше, и я не знаю, с чего начать. А также лучше всего использовать очередь?

...