2014-05-16 52 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位代替它时,它完美无缺。