mongodb - MongoError: E11000 重复键错误收集如何解决
问题描述
我正在使用 MERN 应用程序。在我的 express.js 模型之一中,我有如下的学生模式,其中有独特的字段
Fullname: {
type: String,
required: true,
trim: true,
},
AdmissionNumber: {
type: String,
required: true,
trim: true,
maxlength: 10,
unique: true,
},
RollNumber: {
type: Number,
required: true,
trim: true,
maxlength: 4,
},
Age: {
type: Number,
required: true,
maxlength: 2,
},
Email: {
type: String,
trim: true,
required: true,
unique: true,
},
Faculty: {
type: ObjectId,
ref: "Faculty",
required: true,
},
pass: {
type: Number,
default: 0,
}
我在这样的表格的帮助下拯救了学生
exports.addStudent = (req, res) => {
let form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, (err, fields) => {
if (err) {
res.status(400).json({
error: "problem with feilds",
});
}
// destructuring feilds
const {
Fullname,
AdmissionNumber,
RollNumber,
Age,
Email,
Faculty,
} = fields;
if (
!Fullname ||
!AdmissionNumber ||
!RollNumber ||
!Age ||
!Email ||
!Faculty
) {
return res.status(400).json({
error: "Please fill all fields",
});
}
// TODO: restriction on fields
let student = new Student(fields);
student.save((err, student) => {
if (err) {
res.status(400).json({
error: "Saving Student in DB failed",
});
console.log(err);
}
res.json(student);
// console.log(student.gender);
});
});
};
我检查了我的数据库集合,数据库中只有一个字段。
解决方案
我之前遇到过这个问题,对我有用的解决方案是从数据库中删除集合,然后重试
推荐阅读
- android - UnitTest 中 new Message() 与 Message.obtain(...) 之间的区别
- c++ - VSCode 中的 2 个调试按钮有什么区别?
- spring - 使用本机查询时,@Query 没有给出想要的结果
- apache-spark - pyspark textFileStreaming在textFile工作时无法检测到txt文件
- android - Android 地理围栏不工作。每次调用 onGeoQueryReady() 方法
- javascript - 当标签从 text/plain 更改为 text/javascript 时,Google 分析不跟踪
- firebase - 如何解决使用firebase问题构建离子3
- react-native - react-native-tcp:verifyReleaseResources 失败
- jquery - 无法读取未定义的属性“offsetwidth”
- windows - 使命名管道仅对启动客户端进程的登录 sid 可访问