Vic*_*tor 7 javascript mongoose mongodb node.js
我已经为新项目创建了一个新的 Mongo 集合,但是当我尝试创建新用户时,出现以下错误:
\nMongoError: E11000 duplicate key error collection: GestorMedico.users index: username_1 dup key: { username: null }\nRun Code Online (Sandbox Code Playgroud)\n我的用户架构如下:
\nconst { Schema, model } = require("mongoose");\n\nconst userSchema = new Schema({\n nombreEmpresa: {\n type: String,\n unique: true,\n required: true\n },\n email: {\n type: String,\n required: true\n },\n telefono: {\n type: String,\n required: true\n },\n contrase\xc3\xb1a: {\n type: String,\n required: true\n }\n}, {\n timestamps: true,\n versionKey: false\n});\n\nmodule.exports = model("Users", userSchema);\nRun Code Online (Sandbox Code Playgroud)\n我的功能如下:
\nuserCtrl.createUser = async (req, res) => {\n const newUser = new User(req.body);\n \n newUser.contrase\xc3\xb1a = await crypt.encryptPassword(newUser.contrase\xc3\xb1a);\n \n await newUser.save();\n \n res.status(200).json({\n status: "OK",\n message: "User created"\n });\n};\nRun Code Online (Sandbox Code Playgroud)\n我的收藏看起来像:
\n\n我重用了我的一个旧项目的后端,该项目在模式中有一个“用户名”。
\nBra*_*rse 11
当您尝试保存唯一字段(索引)而数据库中已有另一个字段(索引)时,会引发错误 E11000。
由于该字段似乎是用户名,在 userSchema 中不可见,因此我假设您的数据库中仍然存在该索引。
在 mongo Compass 页面上,您进行了屏幕截图,转到“索引”选项卡,刷新并删除用户名索引(如果存在)。
如果这不能解决问题,请继续通过代码打印出索引并检查那里,是否有您不想使用的索引db.collection.dropIndex()来删除它。
文档在这里
另请确保在您的 req.body 中nombreEmpresa传输该字段,因为当您要保存文档时需要该字段。
我希望这能解决它;)
| 归档时间: |
|
| 查看次数: |
22819 次 |
| 最近记录: |