• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

SDK数据库 Transaction

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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 时可调用)



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
SDK数据库 Command·索引发布时间:2022-02-02
下一篇:
SDK数据库 Geo发布时间:2022-02-02
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap