我有一个nodejs应用程序。当它开始时,它连接到一个mongodb监听127.0.0.1:27017(使用mongoose)。该应用程序使用5个独立的集合与主集合中的一个密钥连接,例如(user._id,其中'User'是主集合)。当应用程序启动时,我想用100K记录来填充数据库。所以我为100K迭代写了一个for循环,如下所示,
for (var ii=0; ii < count; ii++) {
async.series([
function(callback) {
//Build User record
var user = new User();
user.email = ii.toString() + '@example.com';
user.save(function(err, data) {
if (err) {
console.log(err);
return callback(err, null);
}
user_id = data._id;
console.log('New User:' + user_id);
u_count++;
callback();
});
},
function(callback) {
//Save collection 2 information about newly saved user (user_id);
var photo = new Photo();
photo._user = user_id;
photo.save() {
......
callback();
}
},
function(callback) {
//collection 3 ...
....
}
//3 more collection save calls in series
), function(err) { //Final callback for each iteration
...
});
}); //end of async.series()
} //end of for loop
如果count = 10000,数据库会正确填充,但如果我将该数字增加到100K,我就会开始出现以下错误,
{ [MongoError: connection 4 to 127.0.0.1:27017 timed out]
name: 'MongoError',
message: 'connection 4 to 127.0.0.1:27017 timed out' }
Saving Photo: Internal error while saving employee record
Error while running async.seriesMongoError: connection 4 to 127.0.0.1:27017 timed out
'4'我相信是与mongodb的连接数。这取决于何时(或正在执行异步操作),您会收到此错误。
我无法跟踪此错误。任何帮助表示赞赏。
- Atarangp