MongoDb:对于每个好记忆明智吗?

时间:2014-10-03 15:39:52

标签: javascript node.js mongodb mongojs

我从mongodb数据库中获取了大量数据。我无法在服务器上一次加载所有数据,因为它太大而且我的内存不足。

如果我使用forEach,它会获取所有内容并加载服务器上的所有内容,然后在每个上面应用该函数吗?

OR

它会获取第一个元素,应用函数,加载第二个元素,应用函数......直到最后一个元素?

1 个答案:

答案 0 :(得分:2)

不,它不会加载所有内容。这基本上就是为什么:

> db.hotel.find().forEach
function ( func ){
    while ( this.hasNext() )
        func( this.next() );
}

所以你看到“引擎盖下”所做的就是为标准的游标迭代器方法提供一个“方便”的包装。

它只是一个帮手,无论是在shell中还是在一般的驱动程序函数中。

但如果您的“驱动程序”允许,则使用“流式”界面代替,这是一种更好的方法。