文档中心
小程序云 
产品公告
云托管
云开发
产品简介
产品计费
操作指南
开发指南
云函数 sdk
服务端
nodejs sdk
常量
云函数
文件存储
开放能力
数据库
mysql
nosql
database
collection
document
transaction
aggregate
工具方法
php sdk(邀测中)
客户端
用户身份服务sdk
websocket
开发教程
cloudpilot
云效能
云安全
风险智能
智能营销
智能客服
智能监控
费用中心
访问控制
云迁移
组件市场
相关协议
小程序云 > 云开发 > 开发指南 > 云函数 sdk > 服务端 > nodejs sdk > 数据库 > nosql >  > starttransaction
收藏
我的文档
设置
创建并开始新事务。
starttransaction 方法类型定义:
typescript
复制代码
function starttransaction(): promise<transaction>
返回参数
promise.
transaction 事务对象,提供了 commitrollback 以及 collection 方法用于进行事务操作。
collection 方法用于在当前事务下获取集合对象并行相应操作。
rollback 方法用于在需要终止事务并进行回滚时调用。
commit 方法用于结束事务并进行提交时调用。
示例
购物时,创建订单并扣款的事务示例:
javascript
复制代码
const cloud = require("@alipay/faas-server-sdk");

exports.main = async (event, context) => {
const db = cloud.database();
try {
const transaction = await db.starttransaction();
const ordercollection = transaction.collection('order');
const accountcollection = transaction.collection('account');
const account = await accountcollection.doc('account-123').get();
if (account.amount < 10) {
console.log('事务执行失败,下单失败');
await transaction.rollback();
return {
success: false,
message: '账户余额不足',
};
}
const order = await ordercollection.add({
data: {
ordername: 'order-123',
status: 'created',
},
});
const amountleft = account.amount - 10;
await accountcollection.doc('account-123').update({
data: {
amount: amountleft,
}
});
await transaction.commit();
console.log('事务执行成功,下单成功');
return {
success: true,
orderid: order._id,
amountleft,
};
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图