反对js更新增量+1

Pio*_*otr 4 javascript orm node.js objection.js

如何使用反对更新数据库中的值?我的 SQL 查询完美无缺。

UPDATE "freePlace"
SET number = number-1
WHERE   date >= '2017-10-20'   AND date <= '2017-10-30' AND "idObject" = '1'
Run Code Online (Sandbox Code Playgroud)

我的反对代码:

FreePlace.query().patch({number:number+1}).where('date', '>=', startDate)
  .andWhere('date', '<=', endDate)
  .andWhere('idParking', '=', parkingId)
Run Code Online (Sandbox Code Playgroud)

问题出在 patch({number:number+1}) 我需要怎么做?

Sam*_*äki 9

您可以使用increment/decrement方法:

FreePlace.query()
  .increment('number', 1)
  .where('date', '>=', startDate)
  .andWhere('date', '<=', endDate)
  .andWhere('idParking', '=', parkingId)
Run Code Online (Sandbox Code Playgroud)

如果您需要在同一查询中更新其他内容,您可以使用 raw

FreePlace.query()
  .patch({
    number: raw('number + 1'),
    somethingElse: 42
  })
  .where('date', '>=', startDate)
  .andWhere('date', '<=', endDate)
  .andWhere('idParking', '=', parkingId)
Run Code Online (Sandbox Code Playgroud)

raw 来自 const { raw } = require('objection')