SDK数据库 Transaction


本文整理自网络,侵删。

Transaction

数据库事务操作对象


方法:

Transaction.collection(name: string): Collection

支持端:云函数

事务中获取集合的引用。方法接受一个 name 参数,指定需引用的集合名称。

参数

name: string

集合名称

返回值

Collection

集合引用

注意事项

在事务中仅能进行单记录操作,也就是不能使用 where、aggregate 接口,可以使用的接口如下:

collection       获取集合引用
|-- add          新增记录
|-- doc          获取记录引用
    |-- get      获取记录内容
    |-- update   更新记录内容
    |-- set      替换记录内容
    |-- remove   删除记录



Transaction.rollback(reason: any): Promise<void>

支持端:云函数

终止并回滚事务

参数

reason: any

终止后,希望在 runTransaction 返回的 Promise reject 时接收到的值。

返回值

Promise.<void>

终止完成

示例代码

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database({
  throwOnNotFound: false,
})
const _ = db.command

try {
  const result = await db.runTransaction(async transaction => {
    const aaaRes = await transaction.collection('account').doc('aaa').get()
    // ...
    // 终止事务
    await transaction.rollback(-100)
  })
} catch (e) {
  // e === -100
  console.error(`transaction error`, e)
}


Transaction.commit(reason: any): Promise<void>

支持端:云函数

提交事务

参数

reason: any

终止后,希望在 runTransaction 返回的 Promise reject 时接收到的值。

返回值

Promise.<void>

提交完成

示例代码

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database({
  throwOnNotFound: false,
})
const _ = db.command

exports.main = async (event) => {
  try {
    const transaction = await db.startTransaction()
    // ...
    await transaction.collection('account').doc('aaa').update({
      data: {
        amount: 100
      }
    })
    // 提交事务
    await transaction.commit()

    return {
      success: true,
    }
  } catch (e) {
    console.error(`transaction error`, e)

    return {
      success: false,
      error: e,
    }
  }
}

API 列表:

transaction
|-- collection       获取集合引用
|   |-- doc          获取记录引用
|   |   |-- get      获取记录内容
|   |   |-- update   更新记录内容
|   |   |-- set      替换记录内容
|   |   |-- remove   删除记录
|   |-- add          新增记录
|-- rollback         终止事务并回滚
|-- commit           提交事务(仅在使用 startTransaction 时可调用)



标签:微信小程序

相关阅读 >>

微信小程序 小程序简介

微信小程序api 视频-videocontext

微信小程序api 绘图设置填充样式setfillstyle

微信小程序云开发 开发指引

微信小程序 运力方使用onorderquery

微信小程序工具 体验评分

微信小程序云开发api 构造一个服务端时间的引用

微信小程序媒体组件 audio

微信小程序绘图api中创建二次方贝塞尔曲线

微信小程序框架逻辑层(app service)

更多相关阅读请进入《微信小程序》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...