0

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

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

但是,就是这样,我问:

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

大多数情况下,我使用projections它只返回我将明确传递给变量的字段。所以自然无论如何它都会存储在RAM中......'-'

4

1 回答 1

0

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

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

于 2013-06-24T21:24:01.210 回答