12

mongo 类的 PHP 文档说使用游标而不是iterator_to_array更好。

为什么?我将从中获得什么好处/灵活性?

4

1 回答 1

20

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

直接来自链接的文档

<?php

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

?>

...

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

于 2011-02-21T00:00:16.177 回答