我已經為一個新專案創建了一個新的 Mongo 集合,但是當我嘗試創建一個新用戶時,我收到以下錯誤:
MongoError: E11000 duplicate key error collection: GestorMedico.users index: username_1 dup key: { username: null }
我的用戶架構如下:
const { Schema, model } = require("mongoose");
const userSchema = new Schema({
nombreEmpresa: {
type: String,
unique: true,
required: true
},
email: {
type: String,
required: true
},
telefono: {
type: String,
required: true
},
contrase?a: {
type: String,
required: true
}
}, {
timestamps: true,
versionKey: false
});
module.exports = model("Users", userSchema);
我的功能如下:
userCtrl.createUser = async (req, res) => {
const newUser = new User(req.body);
newUser.contrase?a = await crypt.encryptPassword(newUser.contrase?a);
await newUser.save();
res.status(200).json({
status: "OK",
message: "User created"
});
};
我的收藏看起來像:

我重用了我的一個舊專案的后端,它在模式中有一個“用戶名”。
uj5u.com熱心網友回復:
當您嘗試保存的唯一欄位(索引)而資料庫中已有另一個欄位(索引)時,將引發錯誤 E11000。
由于該欄位似乎是在 userSchema 中不可見的用戶名,我假設您的資料庫中仍然存在該索引。
在您制作螢屏截圖的頁面上的mongo Compass中,轉到“索引”選項卡,重繪 并洗掉用戶名索引以防萬一。
如果這不能解決它繼續通過代碼列印出索引并在那里檢查,如果有一個你不想使用db.collection.dropIndex()洗掉它。
檔案在這里
還要確保在您的 req.body 中nombreEmpresa傳輸該欄位,因為當您要保存檔案時需要它。
我希望能解決它;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414139.html
標籤:
