我应该如何处理mongodb中的并发?

时间:2016-06-10 21:52:41

标签: mongodb

我正在开发一个将数据记录写入mongodb的Web服务。该服务从mongodb读取文档,执行一些计算并更新文档中的数据,然后将文档重写回mongodb。我需要确保在将数据写回mongodb之前,没有其他进程更新该文档,否则我可能会在更换文档时遇到数据丢失。如何在应用程序级别确保这样的数据完整性?我可以在执行计算时锁定文档吗?在更换文档之前,我应该检查文档上的版本号吗?业界用什么策略来处理这样的情况?提前致谢

1 个答案:

答案 0 :(得分:0)

您可以在调用update()时查询要更新的文档中的值,以检查文档是否仍处于您期望的状态,并确认自上次读取后没有其他人更新过该文档该文件。类似于乐观锁定方法。见https://docs.mongodb.com/manual/core/write-operations-atomicity/#concurrency-control