我有500个mongodb数据库,我需要连接所有数据库并根据条件检查集合中的记录,然后记录。
一种方法是使用for循环和操作数据库,如下所示:
for(var i=0; i<databases.length;i++){
//connect to database
//find query
// add record to array
}
它会正常工作但需要很长时间。有没有其他方法以优化方式进行快速处理?
答案 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 ...不确定出站连接的最大数量是多少。