【问题标题】:Keeping data consistency with multiple clients using nodejs and mongodb使用 nodejs 和 mongodb 与多个客户端保持数据一致性
【发布时间】:2015-03-30 05:54:35
【问题描述】:
我正在创建一个使用 mongodb 的 nodejs Web 服务器,我遇到了几种情况,当同时处理多个请求时,数据可能最终处于不一致的状态。例如,创建用户时,会先检查用户名不存在,然后再创建用户。但是,如果在检查用户名不存在但在创建用户之前,另一个客户端使用该用户名创建用户,则会出现问题。我怎样才能防止这个问题?使用不同的数据库是否更容易解决?
【问题讨论】:
标签:
node.js
mongodb
concurrency
database
【解决方案1】:
MongoDB 允许您在索引上指定唯一约束。
因此您可以在用户名上设置唯一索引,它会在插入时检查唯一用户名。您的问题将通过此功能解决
db.collection.createIndex( { username: 1 }, { unique: true } )
您可以从此link获取更多信息
谢谢