MongoDB - 将iterator_to_array用于单个字段(PHP)

时间:2013-06-02 18:48:49

标签: php mongodb

有很多关于避免使用iterator_to_array的说法,所以我们应该直接使用foreach loop来获取返回的字段。

主要原因是iterator_to_array将所有返回的文档加载到RAM中。

但是,就是这样,我问:

如果这些内容只返回ONE document,该文档只返回ONE field,该怎么办? iterator_to_array不是比为它抛出一个循环更合适吗?

大多数情况下,我正在使用projections,以便它只返回我将绝对传递给变量的字段。所以很自然它会被存储在RAM中......' - '

1 个答案:

答案 0 :(得分:0)

如果你的iterator_to_array()循环只是要收集数组中的文档,那么使用foreach是没有害处的。正如您所提到的,如果您要一次处理一个结果中的文档并且不需要它们在内存中共存,foreach就有其优势。

如果您的查询只返回单个文档,您也可以使用MongoCollection::findOne()并避免自己迭代MongoCursor。