Mongodb超时错误

时间:2016-11-05 21:48:20

标签: node.js mongodb mongoose-schema

我有一个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

0 个答案:

没有答案