[英]Nodejs - concurrent or parallel API calls creates duplicates entries in mongodb
直截了当:
我在 1 秒内从同一台机器(用户)或不同的机器(用户)单击按钮两次。 它正在创建两个文档(重复)。
简而言之可能是如何并行或并发地处理多个 API 调用。
我怀疑的是:
db.find(name)
-> Not Found-> Creating New document (Its running)在上述文件创建完成之前。 Nodejs 开始执行下一个 API 调用。
db.find(name)
-> Not Found -> Creating New document。示例代码:这里创建了两个同名帐户。
const userPresent = await User.findOne({
phoneNumber: data.phoneNumber,
});
if (userPresent) {
throw new CustomError("OIC_ERROR_00027", "User already present");
}
// new account created
const newAccount = await new Account({
name: data.name,
}).save();
您可以尝试为您的产品名称创建唯一索引。 这将导致您的产品名称没有任何重复。
db.collection.createIndex( {"name":1} , { unique: true } )
问题是我在连接到 MongoDB 时给了autoindex: false
选项。 所以数据库没有在猫鼬模式中使用indexing
命令。 我删除了autoindex: false
并遵循了@koodies 指导。 感谢现在工作!
但是当我尝试创建连接并像db.model("modelName")
一样使用它时db.model("modelName")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.