MongoDB-模拟事务



我想在MongoDB上模拟一个事务,您想知道是否有更好的解决方案。我有一个数组内部的文档。我想增加价值​​这一点。但是,如果同时另一个用户选择了具有相同值的文档,则会导致错误的数据。必须等到更新被解决,并且只有在另一个用户可以请求文档并且他也增加arry之后。有什么建议吗?

感谢

您应该让mongo处理这些并发问题。它知道如何处理这样的情况,并且每次更新都是原子性的。

您可以只指定要增加的金额,而不是提交要更新的实际值。我建议使用适当的运算符来允许mongo完成它的工作。如果您所做的只是对某个值进行增量,则可以使用$inc运算符。

取自链接文档:

$inc运算符将字段增加指定值,并具有以下形式:

{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }

若要在嵌入文档或数组中指定,请使用点表示法。

请注意,此方法也适用于递减值;只需传递一个负值作为金额。

从4.0版本开始,MongoDB将增加对多文档事务的支持。事务将是多语句的,语法类似于start_transactioncommit_transaction

有关详细信息,请访问此链接:https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb?jmp=community

最新更新