Node.js 在mongodb中写入数据

Node.js 在mongodb中写入数据,node.js,mongodb,Node.js,Mongodb,我正在使用node.js将大量数据插入mongodb。该程序运行良好,我可以在mongo db的数据库路径中看到,数据以文件形式写入,其中databasename.0为128 kb,databasename.1为256 kb,databasename.0为512 kb,databasename.0为1024 kb,最后一个2048 kb的文件插入最后一个2048 kb的文件时,与mongodb的连接将丢失,数据不会插入。为什么会发生这种情况?如何摆脱这种情况?请给我解释一下这个概念。我将附上用于

我正在使用node.js将大量数据插入mongodb。该程序运行良好,我可以在mongo db的数据库路径中看到,数据以文件形式写入,其中databasename.0为128 kb,databasename.1为256 kb,databasename.0为512 kb,databasename.0为1024 kb,最后一个2048 kb的文件插入最后一个2048 kb的文件时,与mongodb的连接将丢失,数据不会插入。为什么会发生这种情况?如何摆脱这种情况?请给我解释一下这个概念。我将附上用于插入数据的代码。 //connection.js,用于建立连接

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);
        });
    });

});

问题在于使用的32位mongodb am只能存储2GB左右的数据。当我将其替换为64位时,它工作得非常完美。

您能编辑您的问题以更好地格式化代码吗?这是为他做的……当我第一次来到这里时,我也不知道如何格式化代码;)需要诊断的不是您的代码,而是“mongodb的连接丢失,数据未插入”的原因,特别是错误是什么?mongod端(查看日志)是否有错误,应用程序中是否有错误(记录或打印并包含在此处)。数据库中引发的错误:Sat May 17 08:44:02.922 Socket say send()错误号:10054远程主机强制关闭了现有连接。127.0.0.1:270 17 Sat May 17 08:44:03.016错误:套接字异常[发送错误]对于src/mongo/shell/query.js:78 Sat May 17 08:44:03.016上的127.0.0.1:27017,尝试重新连接到127.0.0.1:27017 Sat May 17 08:44:03.952 reconnect 127.0.0.1:27017失败无法连接到服务器127.0.0.1:27017尝试再次运行程序时出错:collection=dbconnection.collection('new_file_test'); ^ TypeError:无法在C:\Documents and Settings\sabarish.radhakrishn\Desktop\from.js:24:28的文档(C:\Documents and Settings\sabarish.radhakrishn\Desktop\connection.js:24:6)调用null的方法“collection”