如何限制在MongoDB中插入DUPLICATE EMAILS?

时间:2017-01-23 14:27:11

标签: node.js mongodb express

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

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

1 个答案:

答案 0 :(得分:2)

请为该列添加约束

  

实施例

     

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

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

注意:如果有任何重复数据需要删除,否则您将获得E11000重复密钥错误收集:...