2014-05-16 80 views
0

我使用node.js將大量數據插入到mongodb中。該程序工作正常,我可以看到在mongo數據庫的數據庫路徑中的數據被寫爲文件是databasename.0這是128 kb,databasename.1是256 kb,databasename.0是512 kb,數據庫名稱.0是1024 kb,最後一個文件是2048 kb,而最後一個文件是2048 kb,連接在mongodb中丟失,數據未被插入。爲什麼會發生這種情況,請解釋一下這個概念。我將附上用於插入數據的代碼。 // connection.js其被用於建立連接在mongodb中寫入數據

var Db = require('mongodb').Db; 
var connection = require('mongodb').connection; 
var Server = require('mongodb').Server; 
var connectionInstance; 
module.exports = function(callback) { 
    if (connectionInstance) { 

     callback(connectionInstance); 
     return; 
    } 
    var serverOptions = { 
     'auto_reconnect': true, 
     'poolSize': 100 
    }; 
    var db = new Db('test', new Server('localhost', 27017, serverOptions)); 
    db.open(function(err, databaseconnection) { 

     if (err) 
      console.log(err); 
     connectionInstance = databaseconnection; 
     console.log("connection Established"); 
     callback(databaseconnection); 
    }); 
}; 

//The pgm to insert the data on to the mongodb using node.js 
var i = 0; 
var MongoClient = require('mongodb').MongoClient; 
var mongoServer = require('mongodb').Server; 
var serverOptions = { 
    'auto_reconnect': true, 
    'poolSize': 5 
}; 
var i = 0; 
var async = require('async'); 
var mongoClient = new MongoClient(new mongoServer('localhost', 27017, serverOptions)); 
var db = mongoClient.db('test'); 
var collection = db.collection('new_file_test'); 
var doc 
mongoClient.open(function(err, mongoClient) { 
    if (err) { 
     console.log(err) 
    }; 

    function save(callback) { 
     console.log("Am the first"); 
     doc = { 
      'trip_paramid': "111", 
      'tripid': '116', 
      'lattitude': '12.8929183', 
      'longitude': '77.63627', 
      'speed': '2', 
      'heading': '0', 
      'altitude': '80469', 
      'address': 'qwertyasdfgxcvbn', 
      'engine_status': 'Normal', 
      'oil_pressure': '83.12', 
      'water_temp': '28', 
      'fuel_content': '0', 
      'brake': 'Normal', 
      'creation_time': '2013-08-31 23:22:17', 
      'brakelight_status': 'Normal', 
      'battery_status': '12.68', 
      'event_code': '8', 
      'dbinsert_time': '2013-08-31 23:24:59', 
      'gsm_status': '-51', 
      'cell_id': '45', 
      'vehicle_id': '123456', 
      'distance': '0' 
     } 
     callback(doc); 
    } 
    save(function(doc) { 
     console.log("I got it first"); 
     console.log("Inserting" + i); 
     collection.insert(doc, function(err) { 
      if (err) 
       console.log('Error occured'); 
      else 
       console.log("Inserted" + i); 
     }); 
    }); 

}); 
+0

你能編輯你的問題來更好地格式化代碼嗎? – JohnnyHK

+0

對他來說是這樣的......當我第一次來到這裏時,我不知道如何格式化它); – yaoxing

+0

而不是你的代碼,診斷這個需要什麼就是爲什麼「連接失去了與mongodb和數據沒有插入「,特別是錯誤是什麼?在Mongo端存在錯誤(查看日誌),應用程序中是否存在錯誤(記錄或打印它並將其包含在此處)。 –

回答

0

問題是與32個mongodb的正在與該使用可以存儲的周圍僅2GB的數據。當我用64位代替它時,它完美無缺。