书架单步查询和更新值

Bookshelf query and update value in a single step

我正在使用 Bookshelf JS 作为我的 ORM。我想查询一个特殊实体并更新它一个查询(就像我执行 INSERT INTO...WHERE...)

如何在没有原始查询的情况下执行此操作?

这是我现在的做法:

async function updateSetting() { 
  let userSetting = await Setting.where({user: 1, key: 'foo'}).fetch()
  await userSetting.save({value: {confirmed: true, order: 66}})
}

你可以试试这个:

async function updateSetting() {
    let userSetting = await Setting
        .where({user: 1, key: 'foo'})
        .save(
            {value: {confirmed: true, order: 66}},
            {method: 'update', patch: true}
        )
}

要在不执行 fetch() 的情况下更新模型,您需要具有模型的 id_Attribute(通常只是 id)或使用 where() 子句(如前所述通过@websoftwares)

有点像:

new Setting({ id: 99 })
  .save({ value: { confirmed: true, order: 66} },
        { patch: true })

请注意,在这种情况下,您不需要指定 method,因为 id 的存在意味着您正在更新现有行。