在Sequelize中更新计算值

时间:2019-04-12 07:05:49

标签: node.js sequelize.js

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

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

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

        }
    });

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

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

            }
        });

3 个答案:

答案 0 :(得分:4)

您可以使用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' });

答案 1 :(得分:2)

您可以使用增量来实现

 Model.increment(
        { seq: +5 },
        { where: { id: 4 } }
      );

并输出:

UPDATE `Model` SET `seq`=`seq`+ 5 WHERE `id` = 4

答案 2 :(得分:0)

假设你想通过值 5 增加 aa 列,其中性别是女性

Users.increment('aa', { by: 5, where: { gender: 'female' } });