用mongodb写数据

时间:2014-05-16 13:45:17

标签: 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并且没有插入数据。为什么会发生这种情况如何摆脱这个请解释我的概念。我将附加用于插入数据的代码。 // 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);
        });
    });

});

1 个答案:

答案 0 :(得分:0)

问题在于使用的32位mongodb只能存储大约2GB的数据。当我用64位替换它时,它完美无缺。