如何从 BookshelfJS 集合更新所有生成的模型?
How to update all resulting models from a BookshelfJS collection?
例如,给定一个属性为 sold_out 的产品列表,我想更新该集合中每个项目的字段。
在此特定示例中,假设我想将字段 sold_out = false
设置为该字段设置为 true
:
的所有项目
Product.where({sold_out: true})
.fetchAll()
.then(soldOutCollection => {
return Promise.all(product => {
return product.save({sold_out: false})
})
})
这有效,但它会针对集合中的每一项触发一个查询。
有没有办法一次更新所有项目(只触发一个查询)?
PS:我试图避免直接使用 knex.js
我想如果你想以这种方式更新,你可能想试试这个:
Product
.where({sold_out: true})
.save(
{sold_out: false},
{method: 'update', patch: true}
)
例如,给定一个属性为 sold_out 的产品列表,我想更新该集合中每个项目的字段。
在此特定示例中,假设我想将字段 sold_out = false
设置为该字段设置为 true
:
Product.where({sold_out: true})
.fetchAll()
.then(soldOutCollection => {
return Promise.all(product => {
return product.save({sold_out: false})
})
})
这有效,但它会针对集合中的每一项触发一个查询。
有没有办法一次更新所有项目(只触发一个查询)?
PS:我试图避免直接使用 knex.js
我想如果你想以这种方式更新,你可能想试试这个:
Product
.where({sold_out: true})
.save(
{sold_out: false},
{method: 'update', patch: true}
)