Вызов типа:
$cursor = \Yii::$app->mongodb->createCommand(\Yii::$app->mongodb->getQueryBuilder()->aggregate(
$collection->name, $pipeline,
['allowDiskUse' => true, 'cursor' => ['batchSize' => $this->batchSize]]))->execute();
$resultArray = $cursor->toArray();
-- практически все время при большой выборке потратит на вызов toArray(), и это будет проходить медленно.
Итерируемся сами
Можно итерироваться по курсору, без вызова toArray(), но даже пустая итерация типа: