sql >> データベース >  >> NoSQL >> MongoDB

大量のデータを挿入しながらnode.jsのmongodb接続を閉じる

    私は100%確信していますが、私が見る限り、データを同期的に挿入しています。つまり、行を取得したら、それを挿入しようとし、結果を待たないということです。別のアプローチを使用してみてください:

    • すべての行を読み取り、配列に格納します
    • 非同期でデータを1行ずつ挿入し始めます

    そのようなもの:

    var lines = [];
    var readAllLines = function(callback) {
        // store every line inside lines array
        // and call the callback at the end
        callback();
    }
    var storeInDb = function(callback) {
        if(lines.length === 0) {
            callback();
            return;
        }
        var line = lines.shift();
        collection.insert(line, function (err, docs) {
            storeInDb(callback);
        });
    }
    
    mongoClient.open(function (err, mongoClient) {
        console.log(err);
        if (mongoClient) {
            readAllLines(function() {
                storeInDb(function() {
                    // lines are inserted
                    // close the db connection
                })
            });
        }
    });
    



    1. _.mergeは、更新する代わりにサブドキュメントを複製します

    2. MongoDBがmLabを取得– MongoDBホスティングのさまざまな選択肢は何ですか?

    3. GridFSを使用して保存され、React / JavascriptクライアントでGraphQLを使用して返されるファイルをダウンロードするにはどうすればよいですか?

    4. Mongoose / mongoDBクエリが結合します..しかし、私はSQLのバックグラウンドから来ています