例如,给定一个具有sold_out属性的产品列表,我想更新该集合中每个项目的字段。
在这个特定的示例中,假设我想sold_out = false将该字段设置为该字段设置为的所有项目true:
Product.where({sold_out: true})
.fetchAll()
.then(soldOutCollection => {
return Promise.all(product => {
return product.save({sold_out: false})
})
})
Run Code Online (Sandbox Code Playgroud)
此方法有效,但它会触发集合中每个项目一个查询。
有没有办法一次更新所有项目(仅触发一个查询)?
PS:我试图避免直接使用knex.js
小智 6
我认为,如果您想以这种方式进行更新,则可以尝试以下操作:
Product
.where({sold_out: true})
.save(
{sold_out: false},
{method: 'update', patch: true}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |