W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
數(shù)據(jù)庫事務(wù)操作對象
支持端:云函數(shù)
事務(wù)中獲取集合的引用。方法接受一個 name 參數(shù),指定需引用的集合名稱。
集合名稱
集合引用
在事務(wù)中僅能進(jìn)行單記錄操作,也就是不能使用 where、aggregate 接口,可以使用的接口如下:
collection 獲取集合引用
|-- add 新增記錄
|-- doc 獲取記錄引用
|-- get 獲取記錄內(nèi)容
|-- update 更新記錄內(nèi)容
|-- set 替換記錄內(nèi)容
|-- remove 刪除記錄
支持端:云函數(shù)
終止并回滾事務(wù)
終止后,希望在 runTransaction 返回的 Promise reject 時接收到的值。
終止完成
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)
}
支持端:云函數(shù)
提交事務(wù)
終止后,希望在 runTransaction 返回的 Promise reject 時接收到的值。
提交完成
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,
}
}
}
transaction
|-- collection 獲取集合引用
| |-- doc 獲取記錄引用
| | |-- get 獲取記錄內(nèi)容
| | |-- update 更新記錄內(nèi)容
| | |-- set 替換記錄內(nèi)容
| | |-- remove 刪除記錄
| |-- add 新增記錄
|-- rollback 終止事務(wù)并回滾
|-- commit 提交事務(wù)(僅在使用 startTransaction 時可調(diào)用)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: