Collection.update / Query.update

更新多条记录

函数签名如下:

  1. function update(options: object): Promise<Result>

参数说明

字段名 类型 必填 默认值 说明
data Object 更新对象

返回值说明

Promiseresolvereject 的结果定义如下:

结果说明
resolve 新增记录的结果,Result 定义见下方
reject 失败原因

Result 说明

success 回调的结果及 Promise resolve 的结果 Result 是一个如下结构的对象:

字段 类型 说明
stats Object 更新结果的统计,其中包含的字段见下方 stats 的定义

stats 对象是一个如下结构的对象:

字段 类型 说明
updated number 成功更新的记录数量
注:API 调用成功不一定代表想要更新的记录已被更新,比如有可能指定的 where 筛选条件只能筛选出 0 条匹配的记录,所以会得到更新 API 调用成功但其实没有记录被更新的情况,这种情况可以通过 stats.updated 看出来

示例代码

更新待办事项,将所有未完待办事项进度加 10:

Promise 风格

  1. const cloud = require('wx-server-sdk')
  2. cloud.init()
  3. const db = cloud.database()
  4. const _ = db.command
  5. exports.main = async (event, context) => {
  6. try {
  7. return await db.collection('todos').where({
  8. done: false
  9. })
  10. .update({
  11. data: {
  12. progress: _.inc(10)
  13. },
  14. })
  15. } catch(e) {
  16. console.error(e)
  17. }
  18. }

原文: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/collection.update.html