递减

为了减少一个实例的值而不遇到并发问题,你可以使用 decrement.

首先,你可以定义一个字段和要添加的值.

  1. User.findByPk(1).then(user => {
  2. return user.decrement('my-integer-field', {by: 2})
  3. }).then(user => {
  4. // Postgres默认会返回更新的 user (除非通过设置禁用 { returning: false })
  5. // 在其他方言中,你将需要调用 user.reload() 来获取更新的实例...
  6. })

然后,你可以定义多个字段和要添加到其中的值.

  1. User.findByPk(1).then(user => {
  2. return user.decrement([ 'my-integer-field', 'my-very-other-field' ], {by: 2})
  3. }).then(/* ... */)

最后, 你可以定义一个包含字段及其递减值的对象.

  1. User.findByPk(1).then(user => {
  2. return user.decrement({
  3. 'my-integer-field': 2,
  4. 'my-very-other-field': 3
  5. })
  6. }).then(/* ... */)