更新Sequelize Array

时间:2016-06-05 03:57:23

标签: arrays sequelize.js

我到处寻找,我还没有找到一个易于理解的更新续集数组的方法,比如普通的字符串:

db.User.update({name:req.body.name},{where : {username:req.body.username}}).then(function(user) {

    res.json(user);
})

2 个答案:

答案 0 :(得分:2)

Sequelize不支持使用数组进行批量更新,请参阅https://github.com/sequelize/sequelize/issues/4501

您必须实现自定义功能。 这是一个给你一个想法的基本例子:

var promises = [];
userArray.forEach(function(user){
   promises.push(db.User.update({name:user.name},{where : {username:user.username}});
});
Promise.all(promises).then(function(){
    // success
}, function(err){
    // error
});

答案 1 :(得分:2)

我自己解决的问题如下:

案例1:如果要使用不同条件更新相同值的多行

var arrayUpdate = [{
        name: 'test 1',
        id: 1
    }, {
        name: 'test 2',
        id: 2
    }, {
        name: 'test 3',
        id: 3
    }];
    sequelize.Promise.each(arrayUpdate, function(val, index) {
        return db.User.update({
            name: val.name
        },{
            where:{
                id: val.id
            }
        }).then(function(user) {
        }, function(err){

        });
    })
    .then(function(updateAll){
        //done update all
         res.json(updateAll);
    }, function(err){

    });

案例2:如果您想为不同类型的评论更新具有不同值的多行:

devlopment.py