[英]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.