【问题标题】:How to solve MongoError: E11000 duplicate key error collectionMongoError: E11000 重复键错误收集如何解决
【发布时间】:2021-01-16 21:25:15
【问题描述】:

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

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

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

【问题讨论】:

  • MongoError 为您的 Schema 中具有 unique: true 的 AdmissionNumber 说“重复密钥”。您确定要保存的 AdmissionNumber 真的是唯一的吗?
  • 是的..所有学生都有唯一的录取号码

标签: mongodb mongoose mongoose-schema


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 2021-09-19
    • 2021-03-04
    • 2017-03-02
    • 2018-11-11
    • 2020-02-02
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多