在Sequelize中更新计算值

Yar*_*ron 0 node.js sequelize.js

我想使用一个字段中的先前值在模型上运行更新查询。

这会将模型(行ID = 4)的“ seq”字段更新为5。

 Model.update({
        seq: 5
    },{
        where:{
            'id':4,

        }
    });
Run Code Online (Sandbox Code Playgroud)

现在如何将模型更新为存储在“ seq”字段中的先前值+ 5?

 Model.update({
            seq: 'seq' + 5
        },{
            where:{
                'id':4,

            }
        });
Run Code Online (Sandbox Code Playgroud)

Sun*_*tan 8

您可以通过使用增量来做到这一点

 Model.increment(
        { seq: +5 },
        { where: { id: 4 } }
      );
Run Code Online (Sandbox Code Playgroud)

和输出:

UPDATE `Model` SET `seq`=`seq`+ 5 WHERE `id` = 4
Run Code Online (Sandbox Code Playgroud)


ndo*_*tie 7

假设您想将 aa 列增加值 5,其中性别为女性

Users.increment('aa', { by: 5, where: { gender: 'female' } });
Run Code Online (Sandbox Code Playgroud)


Łuk*_*zak 5

您可以使用 Model.update({ seq: sequelize.literal('seq + 5') }, { where: { id: model_id } });

或者你可以使用increment方法

http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-increment

Model.increment('seq', { by: 5, where: { id: 'model_id' });