我正在为我的应用制作包含一组项目的实时功能。每个用户都可以获得一定数量的项目,但我想知道如何处理这个问题:
Items left: 7
User A wants 5 items
User B wants 5 items
他们都在同一时间按下了按钮。 因为写/锁定的事情,如果我这样做,只有一个人得到它?或者他们都会得到它,我的物品数量将是-3或?
var number = 5
.update(
{$where : "items > number -1"},
{$inc: {"items": -number}},
{multi: true}
);
答案 0 :(得分:0)
在MongoDB手册中:
MongoDB允许多个客户端读取和写入相同的数据。为了确保一致性,它使用锁定和其他并发 控制措施,以防止多个客户端修改相同的 一条数据同时。这些机制共同保证 对单个文档的所有写入都发生在完全或不在 所有客户都不会看到数据的不一致视图。
所以MongoDB负责处理它。