MongoDB的货币交易

时间:2016-11-04 03:14:12

标签: mongodb

我打算有一个名为transactions的集合,我希望存储用户之间的所有货币交易。在制作transaction之前,我想确保sender帐户中有足够的资金。

对于帐户余额,我计划按需计算,而不是存储。

我可以在MongoDB中使用哪种模式来避免竞争条件吗?

IE中。假设用户A的余额为10美元。如果他同时发出两个10美元的发送请求,我的账户可能会出现负数。有没有办法避免这种情况?

1 个答案:

答案 0 :(得分:1)

MongoDB不处理关系数据库之类的事务。为了处理这些交易,我建议使用 Two Phase commits 。您甚至可以使用此功能添加类似回滚的功能。

查看有关如何添加两阶段提交模式的MongoDB文档中的this篇文章。