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