mongo クラスの PHP ドキュメントには、代わりにカーソルを使用するiterator_to_array
方が優れていると書かれています。
なんで?それによってどのようなメリット/柔軟性が得られますか?
mongo クラスの PHP ドキュメントには、代わりにカーソルを使用するiterator_to_array
方が優れていると書かれています。
なんで?それによってどのようなメリット/柔軟性が得られますか?
を使用iterator_to_array()
すると、ドライバーはすべての結果を一度にメモリにロードするため、簡単にメモリ不足になる可能性があります。これは、遅延読み込みを使用するカーソルには当てはまりません!
リンクされたドキュメントから直接:
<?php $cursor = $collection->find(); var_dump(iterator_to_array($cursor)); ?>
...
上記の例で
$collection
、50GB のコレクションであるとします。一度にすべてをメモリにロードしたくないのは確かです。これがカーソルの目的です。クライアントがコレクションに少しずつアクセスできるようにするためです。