Документация PHP для класса mongo говорит, что использование курсора вместо iterator_to_array
превосходит. Зачем? Какие выгоды / гибкость я получу от этого?
Используя iterator_to_array()
ваш драйвер сразу загружает все результаты в память, и вы можете легко исчерпать память. Это не относится к курсору, который использует ленивую загрузку!
Прямо из связанных документов :
<?php $cursor = $collection->find(); var_dump(iterator_to_array($cursor)); ?>
…
Предположим, что в приведенном выше примере
$collection
был сборкой в 50 ГБ. Мы, конечно же, не захотели бы загружать это в память сразу, для чего предназначен курсор: позволяя клиенту получить доступ к коллекции в dribs и drabs.