如何使用 sequelize 实现批量更新?

问题描述

在这里尝试过,但没有得到正确答案,此代码将仅更新一条记录,但我必须一次更新多条记录,并使用不同的 ID,并且我应该将不同的 ID 作为端点传递给 API。

async function bulkupdate(req,res){

    var i;
    let successCount =0; 
    let errorCount = 0;
    var student = req.body;
    var id = req.params.id;

    const schema = {
        name : {type : "string",optional : false,max :"100"},sem : {type : "number",optional  : false },branch :{type : "string",optional:false,max:"100"}
    
    }
    for(i=0;i<student.length;i++){
        const v = new validator();
        var result1 = await  v.validate(student[i],schema);
        if(result1 === true){
            var result = await models.Student.update(student[i],{where :{id:id}});
            successCount++;
             
        }else{
            errorCount++
            return res.send({result1,errorCount,successCount})
            
            
        }
    }
    
    res.status(200).json({        
        successCount:successCount,errorCount:errorCount,});
  }

解决方法

它更新一条记录,因为 id 的值总是相同的, 如果请求正文包含学生 ID,那么您可以使用类似于此的内容

var result = await models.Student.update(student[i],{where :{id: student[i].id}});