【发布时间】:2018-04-11 14:33:02
【问题描述】:
我正在构建一个网络挂钩,它将接收来自 Facebook 的 POST 请求。在每个请求中,都有一个facebookId 字段,用于在数据库中插入一条新记录。 facebookId 在数据库中应该是唯一的(意味着没有两条记录应该有相同的 facebookId)。
原型代码是这样的
postRequestHandler(req) {
const facebookId = req.body.facebookId;
if (!Meteor.users.findOne({ facebookId })) {
Meteor.users.insert({
facebookId,
// some other fields
})
}
}
问题是,有时当有许多请求(是的,它们有不同的含义)包含相同的新 facebookId(数据库中不存在)并且他们来几乎同时。这将使!Meteor.users.findOne({ facebookId }) 检查失败,并且具有相同facebookId 字段的多条记录将被插入到数据库中。如何防止这种情况发生?
【问题讨论】:
-
我认为这应该可以帮助你stackoverflow.com/questions/17456671/…
标签: javascript node.js mongodb meteor duplicates