Node.js MongoDB插入时间太长

Node.js MongoDB插入时间太长,node.js,mongodb,Node.js,Mongodb,我在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 =

我在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;
                    });
                }
    }
}
mongo.connect(url、函数(err、db){
如果(错误)抛出错误;
var dbo=db.db(“mydb”);
对于(变量i=0;i

})

嘿!如果你允许的话,给我一些建议,让我有一个更可读的代码。1)首先为你声明的
var i
;然后使用index++-Error/Typo?2)尝试将你的代码分成3个不同的部分(函数)取决于每个人的角色3)除非你有真正的理由为什么不让mongoDB生成自己的
\u id
?它肯定是唯一的,并且通过使用ObjectID Mongo的类型,你在搜索和其他操作中会有更好的性能。4)使用单例连接到你的DB。如果没有,你将在每次someon时触发连接e将使用这一组代码。是的!singleton!!非常感谢你!这对我很有用!