我使用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}})
}
答案 0 :(得分:1)
你可以试试这个:
async function updateSetting() {
let userSetting = await Setting
.where({user: 1, key: 'foo'})
.save(
{value: {confirmed: true, order: 66}},
{method: 'update', patch: true}
)
}
答案 1 :(得分:1)
要在不执行fetch()
的情况下更新模型,您需要拥有模型id_Attribute
(通常只是id
)或使用where()
子句(正如@websoftwares所述)
有点像:
new Setting({ id: 99 })
.save({ value: { confirmed: true, order: 66} },
{ patch: true })
请注意,在这种情况下,您无需指定method
,因为id
的存在意味着您正在更新现有行。