之前从数据库中取出20条数据,数据格式例如:
...
{name: '张三', 'phone': '110', prize: '0'}
...
修改了其中10条数据的prize更新为不同的数字
{name: '张三', 'phone': '110', prize: '1'},{name: '李四', 'phone': '110', prize: '2'},{name: '王二麻子', 'phone': '110', prize: '3'},{name: '赵四', 'phone': '110', prize: '4'},{name: '钱三', 'phone': '110', prize: '5'},{name: '张三1', 'phone': '110', prize: '6'},{name: '李四1', 'phone': '110', prize: '7'},{name: '王二麻子1', 'phone': '110', prize: '8'},{name: '赵四1', 'phone': '110', prize: '9'},{name: '钱三1', 'phone': '110', prize: '10'},
我现在是for循环写的,
arr.forEach((ele) => {
.update({ data: { prize: ele.prize }
|
可以一次性更新多条数据的写法吗?
你这条db语句就是更新多条的。
取出20条数据的查询条件是什么
....where({name: _.in(namesStrArr) }).update(...)
那如果张三prize更新为1,李四的prize更新为2,王二麻子prize更新为3?
可以一起写入吗
就是张三prize更新为1,李四的prize更新为2,王二麻子prize更新为3,其他更新为0
where(_.expr($.cond({
if: $.gt(['$name', '张三']),
then: 1,
else: $.cond({
if: $.gt(['$name', '李四']),
then: 2,
else: $.cond({
if: $.gt(['$name', '王二麻子']),
then: 3,
else: 0
})
})
})))
.update(....)