prathamesh mungekar
prathamesh mungekar

Reputation: 63

How to solve MongoError: E11000 duplicate key error collection

I am Working in a MERN application. In one of my model of express.js I have student schema like below which have unique fields

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,
}

I am saving the student with the help of form like this

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

When I try to add student it will be added only first time after that it showing an error enter image description here

I have checked my DB collection there is only one field in the database.

Upvotes: 0

Views: 170

Answers (1)

Mohamed Ghoneim
Mohamed Ghoneim

Reputation: 153

I had this problem before and the solution that worked for me is to delete the collection from the database then try again

Upvotes: 1

Related Questions