Node.js MongoDB вставка занимает слишком много времени - PullRequest
0 голосов
/ 25 мая 2018

У меня есть определенный цикл, в который я вставляю документы в коллекцию MongoDB. Но вставляется только последний документ, возможно, цикл слишком быстр для вставки.Как я могу заставить цикл ждать завершения вставки?Вот мой код:

mongo.connect(url, function(err, db) {
        if (err) throw err;
        var dbo = db.db("mydb");
    for (var i = 0; i < totalEmployee; i++) {
            var some = array_data[index].split(":");
            var thing = some[1].split("\"");
            var EID = thing[1];
            var Info = [];
            index++;
            for (var j = 0; j < 2; j++) {
                var some = array_data[index].split(":");
                var thing = some[1].split("\"");
                var first = thing[1];
                thing = some[2].split("\"");
                var second = thing[0];
                Info[j] = first + ":" + second;
                index++;
            }
            console.log(Info);
            var unique = date + EID;
        dbo.collection("Attendance").find({_id: unique}).toArray(function (err, result) {
                if (!result.length) {
                    dbo.collection("Attendance").insertOne({
                            _id: unique,
                            Date: date,
                            EID: EID,
                            InTime: Info[0],
                            OutTime: Info[1]
                        },function(err, res) {
                            if (err) throw err;
                            console.log("1 document inserted");
                            inserted=false;
                        }
                    );

                }
                else {
                    console.log(unique+date+EID+Info[0]);
                    var myquery = {_id: unique};
                    var newvalues = {$set: {Date: date, EID: EID, InTime: Info[0], OutTime: Info[1]}};
                    dbo.collection("Attendance").updateOne(myquery, newvalues, function (err, res) {
                        if (err) throw err;
                        console.log("1 document updated");
                        inserted=false;
                    });
                }
    }
}

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...