mongodb - 多个用户在mongdb中同时更新相同的数据
问题描述
我是 mondb 的新手。我在数据库中存储了一个计数器变量。每次用户执行某个动作,计数器变量的值都会加1。我想知道的问题是,如果多个用户同时更新计数器,计数器会保持正确的值吗?(期望计数器将精确地增加更新次数)。如果这导致逻辑错误,我该如何解决?
解决方案
一个很好的问题,这种竞争条件可以用你已经提到的类似方式来解决。
{
item_id : <id>,
version : <Number>,
updated_by : <something>
}
当您获取此文档进行更新时,您将获得整个文档,现在在写入期间系统会采用粒度文档级别锁定,因此不会有问题。
更新更新的查询部分应该同时具有 item_id 和版本以及您更新的其他内容 - 也增加文档的版本。
如果后端收到了同一文档的两个副本以进行更新,那么迟到的那个将具有以前的版本,因此它将无法更新任何内容。
现在在用户将更改推送到系统之前处理文档更改的流程。
推荐阅读
- javascript - 如何在Javascript中拆分字符串,但如果它在引号之间则不行?
- javascript - 为什么 webpack 使用 webpackChunkName 向捆绑包中添加不同的路由名称
- stored-procedures - 在存储过程中创建 Snowflake 仓库会更改当前仓库
- for-loop - 代码编译但for循环没有被执行
- flutter - 如何在 Play/App Store 中以编程方式更新 Flutter 应用程序?
- gradle - 为 Gradle Multi Project Build 中的所有子项目指定通用插件
- c++ - RapidXML - 代码产生意想不到的结果
- codeigniter - 在 Windows 上本地运行 CodeIgniter 项目
- c - 为什么当我尝试读取文件时文件变为空?
- java - Spring Cloud Task Launcher 不响应发送给 Rabbit 的新事件