SDK數(shù)據(jù)庫 Transaction

2022-05-12 16:51 更新

Transaction

數(shù)據(jù)庫事務(wù)操作對象


方法:

Transaction.collection(name: string): Collection

支持端:云函數(shù)

事務(wù)中獲取集合的引用。方法接受一個 name 參數(shù),指定需引用的集合名稱。

參數(shù)

name: string

集合名稱

返回值

Collection

集合引用

注意事項

在事務(wù)中僅能進(jìn)行單記錄操作,也就是不能使用 where、aggregate 接口,可以使用的接口如下:

collection       獲取集合引用
|-- add          新增記錄
|-- doc          獲取記錄引用
    |-- get      獲取記錄內(nèi)容
    |-- update   更新記錄內(nèi)容
    |-- set      替換記錄內(nèi)容
    |-- remove   刪除記錄



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

支持端:云函數(shù)

終止并回滾事務(wù)

參數(shù)

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()
    // ...
    // 終止事務(wù)
    await transaction.rollback(-100)
  })
} catch (e) {
  // e === -100
  console.error(`transaction error`, e)
}


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

支持端:云函數(shù)

提交事務(wù)

參數(shù)

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
      }
    })
    // 提交事務(wù)
    await transaction.commit()

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

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

API 列表:

transaction
|-- collection       獲取集合引用
|   |-- doc          獲取記錄引用
|   |   |-- get      獲取記錄內(nèi)容
|   |   |-- update   更新記錄內(nèi)容
|   |   |-- set      替換記錄內(nèi)容
|   |   |-- remove   刪除記錄
|   |-- add          新增記錄
|-- rollback         終止事務(wù)并回滾
|-- commit           提交事務(wù)(僅在使用 startTransaction 時可調(diào)用)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號