MongoDB - 为什么我应该使用游标而不是iterator_to_array(在PHP中)

Cam*_*mel 12 php cursor mongodb

mongo类的PHP文档说使用游标而不是iterator_to_array优越.为什么?我可以从中获得什么好处/灵活性?

小智 19

使用iterator_to_array()会使您的驱动程序立即将所有结果加载到内存中,并且您可能很容易耗尽内存.使用延迟加载的游标不会出现这种情况!

直接来自链接的文档:

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>
Run Code Online (Sandbox Code Playgroud)

...

假设在上面的例子中,$collection是一个50GB的集合.我们当然不希望一次性将它加载到内存中,这就是游标的用途:允许客户端以点滴和单调访问集合.