【问题标题】:How to restrict DUPLICATE EMAILS insert in MongoDB?如何限制在 MongoDB 中插入 DUPLICATE EMAILS?
【发布时间】:2018-02-10 05:35:20
【问题描述】:

我正在尝试将一条记录作为批量上传插入数据库。当电子邮件已经存在时,它不应该插入,但它正在插入。有人可以建议我帮忙吗?

data.forEach(function (v, i) {
    ` async.waterfall([
                function (done) {console.log(filterjson)
                  Student.find(filterjson).exec(function (err, students) {
                    if (err) {
                      return res.status(400).send({message: errorHandler.getErrorMessage(err)});
                    } else { console.log('success'+students)
                      if (students && students.length > 0) {
                        console.log('fail')
                        writer.pipe(fs.createWriteStream('out.csv'))
                        writer.write({FirstName: student.first_name,LastName: student.last_name, email: student.email, mobile: student.mobile, error:'Email already exists'});
                        res.jsonp({ 'errorCode': common.statusCodes.COMMON, 'respMessage': 'Email already exists' });
                     } else {
                        done();
                      }
                    }
                  });
                },
                function (done) {
                  student.save(function (err) {
                    if (err) {
                      return res.status(400).send({message:errorHandler.getErrorMessage(err)});
                    } else {


                      done();
                    }
                  });
                },
           }

【问题讨论】:

标签: node.js mongodb express


【解决方案1】:

请为该列添加约束

例子

db.student.createIndex( { "email": 1 }, { unique: true } )

参考。 https://docs.mongodb.com/manual/core/index-unique/

注意:如果有重复数据需要删除,否则会得到E11000重复键错误收集:...

【讨论】:

  • 确保您切换到正确的数据库。使用 ; db..createIndex( { "email": 1 }, { unique: true} );如果有重复数据需要删除,否则会得到E11000重复键错误集合:...
猜你喜欢
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
相关资源
最近更新 更多