【发布时间】:2021-02-09 23:16:25
【问题描述】:
dynamoDB中products表中的数据。
[
{
productId:123,
quantity:50
},
{
productId:4565,
quantity:10
}
// more items
]
现在,客户可以一次订购一种或多种产品。现在,假设客户正在订购产品123 & 4565,数量分别为30 & 12。
客户可以购买产品123,但他不能购买产品4565,因为它的数量比客户想要的少。
我正在使用AWS docClient 和dc.transactWrite() 方法来实现这一点。但是,transactWrite 的问题在于,如果其中一个条件失败,那么所有事务都会失败。
Implementation of Atomic Transactions in dynamodb
transactWrite 的条件表达式
// QN - quantity
// :val - entered by client
ConditionExpression: '#QN >= :val'
基本上,我想更新有可用数量的产品,并提供一些关于数量不足的交易的信息。
有什么方法可以实现,或者我必须为每个产品手动调用documentClient.update()。
【问题讨论】:
标签: node.js amazon-web-services amazon-dynamodb