我正在努力使电子邮件字段在数据库级别上唯一。当使用相同的emailId创建新文档时,它应该抛出错误。
为了实现它我正在使用
email : {type: String, trim: true, index: true, unique: true, sparse: true,required: true}
但它似乎没有起作用,目前它正在添加具有相同emailId的新文档。
推荐这篇文章:mongoDB/mongoose: unique if not null
选中.getIndexes()
,这是它的输出:
答案 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)