Javascript MongoDb:forEach的好记性明智吗?
我有很多数据要从mongodb数据库中获取。我不能一次在服务器上加载所有数据,因为它太大了,我会耗尽内存 如果我使用forEach,它会在服务器上获取所有内容并加载所有内容,然后在每个内容上应用该函数吗 或Javascript MongoDb:forEach的好记性明智吗?,javascript,node.js,mongodb,mongojs,Javascript,Node.js,Mongodb,Mongojs,我有很多数据要从mongodb数据库中获取。我不能一次在服务器上加载所有数据,因为它太大了,我会耗尽内存 如果我使用forEach,它会在服务器上获取所有内容并加载所有内容,然后在每个内容上应用该函数吗 或 它将获取第一个元素,应用函数,加载第二个元素,应用函数。。。直到最后一个吗?不,它不会加载所有内容。基本原因如下: > db.hotel.find().forEach function ( func ){ while ( this.hasNext() ) fun
它将获取第一个元素,应用函数,加载第二个元素,应用函数。。。直到最后一个吗?不,它不会加载所有内容。基本原因如下:
> db.hotel.find().forEach
function ( func ){
while ( this.hasNext() )
func( this.next() );
}
因此,您可以看到,“幕后”所做的一切都是在标准游标迭代器方法之上提供一个“方便”的包装器
它只是一个助手,无论是在shell中还是在一般的驱动程序函数中
但如果您的“驱动程序”允许,则使用“流式”接口,这是一种更好的方法。如果您使用的是
cursor
method。forEach()
,则它应该迭代队列中获取的每个文档。你可以在这里找到关于游标迭代的更多信息,所以你说这是真的“它会获取第一个元素、应用函数、加载第二个元素、应用函数……直到最后一个吗?”