Попытка вызвать неопределенный метод с именем «allowDiskUse» класса «Doctrine \ ODM \ MongoDB \ Aggregation \ Builder» - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь получить последние покупки с предметом, местоположением и партией. Поэтому я попытался получить идентификаторы каждого из них по группам. Я не могу использовать групповую команду, потому что это огромные данные и не может обрабатываться групповой командой.

 $builder = $dManager->createAggregationBuilder('UserPurchases');        
 $builder->hydrate(false);
 $builder->match()->field('isRemoved')->equals(false)
                ->field('createdAt')->lte($dateEndVal)
                ->group()->field('id')
                ->expression(
                        $builder->expr()
                        ->field('item')
                        ->expression('$item')
                        ->field('location')
                        ->expression('$location')
                        ->field('batch')
                        ->expression('$batch')
        )
        ->skip($skip)->limit($limit)    ;
$builder->allowDiskUse(true);
$purchase = $builder->execute();

Мой ожидаемый результат -

Имя элемента, местоположение, партия, последнее купленное количество ,

1 Ответ

1 голос
/ 04 февраля 2020

По ошибке, в компоновщике нет allowDiskUsage. Вместо этого вы должны передать его в качестве опции методу execute, вы можете посмотреть здесь: https://github.com/doctrine/mongodb-odm/issues/1979

...