使用猫鼬添加多个文档

时间:2019-07-30 14:17:20

标签: node.js mongodb

我的用户想通过从.json文件中加载多个学生来将他们添加到数据库中。创建个人用户时,我没有任何错误,但是如果我尝试同时进行多个插入操作,则会出现许多错误。

我尝试使用一个执行以下操作的for循环:-按照数据库模型准备一个对象-如果BD中已经有一个具有相同ID的学生该怎么办-如果它不存在,请将其添加

function addStudentsFromCSV(req, res) {
    var file_input_name = 'files/data.csv';
    var student_to_add = csv2json.getJsonFromCsv(file_input_name);
    var errors = new Array();

    for(var i=0; i<student_to_add.length; i++) {
    var student = new Student();
        var name;

    student.user_status = -1;
    student.study_program = 'CS';
    student.start_year = null;
    student.house = null;
    student.do_group = null;

    name = student_to_add.SortableName.split(",", 2);
    name[1] = name[1].replace(/^ /g, '');
    student.name = name[1];
    student.surname = name[0];

    student.email = student_to_add[i].Email;
    student.s_number = student_to_add[i].StudentNumber;

    Student.find({
        s_number: student.snumber
    }).exec((err, students) => {
        if(err) {
        errors.push("User " + student.snumber + " has an error");
        }
        if(students && students.length >= 1) {
        errors.push("User " + student.snumber + " already exists");
        } else { 
        errors.push("User added");
        student.save();
        }
    });
    }
    return res.status(500).send({
    errors: errors
    });         
};

module.exports = {
    csv,
    addStudentsFromCSV
}

这是我的错误消息: TypeError:无法在C:\ creating_groups_app \ backend \ node_modules \ mongoose \ lib \ model.js:4739:16在C:\ creating_groups_app \ backend \ controllers \ admin.js:92:15设置未定义的属性'3' :\ creating_groups_app \ backend \ node_modules \ mongoose \ lib \ utils.js:263:16在C:\ creating_groups_app \ backend \ node_modules \ mongoose \ lib \ query.js:4225:11在C:\ creating_groups_app \ backend \ node_modules \ kareem \ index.js:135:16在processTicksAndRejections(内部/进程/task_queues.js:75:11) 在以下位置发出了“错误”事件: 在C:\ creating_groups_app \ backend \ node_modules \ mongoose \ lib \ model.js:4741:13 在C:\ creating_groups_app \ backend \ node_modules \ mongoose \ lib \ utils.js:263:16 [...与原始堆栈跟踪匹配的行...]在processTicksAndRejections(内部/process/task_queues.js:75:11) / p>

有人可以帮助我吗? 预先感谢

0 个答案:

没有答案