首页 > 解决方案 > MongoDB 如何保持数据同步

问题描述

假设我有一个社交媒体应用程序。有一个Group模型有一个名为的字段invitedUsers,它只是一个用户 ID 数组,它们是该组的一部分。

在我的后端,我有一条用户点击加入的路线Group。在该路线中,我执行以下操作:

group.invitedUsers = lodash.concat(group.invitedUsers || [], userId)
group.save()

wheregroup是用户想要加入的群组,是想要加入群组的用户userId的 id。保存后,所有内容都会正确更新,并且用户现在是该组的一部分。

但是如果两个用户同时到达路线会发生什么?MongoDB如何确保group始终通过上述方法添加两个用户ID。group.invitedUsers如果这两个group.save()都在同一时间被触发,是否没有机会引用一个陈旧的值?

标签: mongodbmongoose

解决方案


推荐阅读