4.2.1.2. update¶
更新多条记录
函数签名如下:
-
wx.cloud.database.collection.
update
({data[,sucess][,fail][,complete]})¶ - 参数
data (object) – 必填 更新对象
success(Result) (function) – 选填 成功回调 传入 Result 同返回结果
fail (function) – 选填 失败回调
complete (function) – 选填 调用结束的回调函数(调用成功、失败都会执行)
- 返回类型
Promise<Result>
- 返回
如传入的 options 参数没有 success、fail、complete 字段,则返回一个 Promise
resolve 新增记录的结果,Result 定义见下方
reject 失败原因
Result 定义:
{ stats: { updated: number; // 成功更新的记录数量 } }
- 示例
更新待办事项,将所有未完待办事项进度加 10:
回调风格
const _ = db.command db.collection('todos').where({ done: false }).update({ data: { progress: _.inc(10) }, success: console.log, fail: console.error })
Promise 风格
const _ = db.command db.collection('todos').where({ done: false }) .update({ data: { progress: _.inc(10) }, }) .then(console.log) .catch(console.error)
小技巧
API 调用成功不一定代表想要更新的记录已被更新,比如有可能指定的 where 筛选条件只能筛选出 0 条匹配的记录,所以会得到更新 API 调用成功但其实没有记录被更新的情况,这种情况可以通过 stats.updated 看出来