mongoDb / Mongoose:make emailId唯一字段

时间:2017-11-01 21:42:46

标签: node.js mongodb mongoose

我正在努力使电子邮件字段在数据库级别上唯一。当使用相同的emailId创建新文档时,它应该抛出错误。 为了实现它我正在使用 email : {type: String, trim: true, index: true, unique: true, sparse: true,required: true}

但它似乎没有起作用,目前它正在添加具有相同emailId的新文档。

推荐这篇文章:mongoDB/mongoose: unique if not null

选中.getIndexes(),这是它的输出:

enter image description here

1 个答案:

答案 0 :(得分:4)

您可以使用mongoose-unique-validator

const mongoose = require('mongoose')
const uniqueValidator = require('mongoose-unique-validator')
const Schema = mongoose.Schema

const UserSchema = new Schema({
  email: {
       type: String,
       required: true,
       unique: true
  },
  username: {
    type: String,
    required: true,
    unique: true
  }
})
UserSchema.plugin(uniqueValidator)

module.exports = mongoose.model('Users', UserSchema)