多个用户在mongodb中同时更新相同的数据
Many users update the same data at the same time in mongdb
我是 mongdb 的新手。我在数据库中存储了一个计数器变量。每次用户执行某个操作时,计数器变量的值将递增 1。我想知道的问题是,如果多个用户同时更新计数器,计数器是否会保持正确的值? (预计计数器将根据更新次数精确递增)。如果这导致逻辑错误,我该如何解决?
问得好,这个竞争条件可以用你已经提到的类似方式解决。
{
item_id : <id>,
version : <Number>,
updated_by : <something>
}
当您获取此文档进行更新时,您将获得整个文档,现在在写入过程中系统采用精细的文档级别锁定,因此这不会成为问题。
虽然更新更新的查询部分应该同时包含 item_id 和版本以及您更新的其他内容 - 同时增加文档的版本。
如果后台已经接收到同一份文件的两份副本进行更新,迟到的一份将是以前的版本,因此将无法更新任何内容。
现在处理在用户将更改推送到系统之前更改文档的流程。
我是 mongdb 的新手。我在数据库中存储了一个计数器变量。每次用户执行某个操作时,计数器变量的值将递增 1。我想知道的问题是,如果多个用户同时更新计数器,计数器是否会保持正确的值? (预计计数器将根据更新次数精确递增)。如果这导致逻辑错误,我该如何解决?
问得好,这个竞争条件可以用你已经提到的类似方式解决。
{
item_id : <id>,
version : <Number>,
updated_by : <something>
}
当您获取此文档进行更新时,您将获得整个文档,现在在写入过程中系统采用精细的文档级别锁定,因此这不会成为问题。
虽然更新更新的查询部分应该同时包含 item_id 和版本以及您更新的其他内容 - 同时增加文档的版本。
如果后台已经接收到同一份文件的两份副本进行更新,迟到的一份将是以前的版本,因此将无法更新任何内容。
现在处理在用户将更改推送到系统之前更改文档的流程。