如何解决 MongoError: E11000 重复键错误集合

时间:2021-01-15 12:41:57

标签: mongodb mongoose mongoose-schema

我在 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);
    });
  });
};

当我尝试添加学生时,它只会在第一次添加后显示错误 enter image description here

我检查了我的数据库集合,数据库中只有一个字段。

1 个答案:

答案 0 :(得分:1)

我以前遇到过这个问题,对我有用的解决方案是从数据库中删除该集合,然后重试