节点大数据处理

时间:2015-06-01 06:31:30

标签: javascript node.js mongodb

我有500个mongodb数据库,我需要连接所有数据库并根据条件检查集合中的记录,然后记录。

一种方法是使用for循环和操作数据库,如下所示:

for(var i=0; i<databases.length;i++){
 //connect to database
 //find query
 // add record to array

}

它会正常工作但需要很长时间。有没有其他方法以优化方式进行快速处理?

1 个答案:

答案 0 :(得分:1)

至少,您可以同时运行多个查询。

看看这个:

http://www.sebastianseilund.com/nodejs-async-in-practice

  

我需要迭代一个集合,为每个项目执行异步任务,但只允许x任务同时运行,并且当他们完成所有操作时再做其他事情

因此,您的代码可能会变成:

var results =[];

async.forEachLimit(databases, 5, function(database, callback) {
     //connect to database
     //find query
     //add record to array - results.push(result)
}, function(err) {
    //handle error here
});

这将同时运行5 ...不确定出站连接的最大数量是多少。