How To Index Multiple Unique Data Fields In A Single Document In Mongoose?
In my user document, I want to individually index email and username as unique fields, so that a duplicate is never entered. The problem is all of the documentation I have found f
Solution 1:
Mongoose doesn't have a built-in validation for unique fields. I recommend the package (with this you can use the unique validator on the email and username fields): mongoose-unique-validator. Extend your code with:
letuniqueValidator=require('mongoose-unique-validator');email: {
type:String,
required:true,
trim:true,
unique:true,
index:true
},username: {
type:String,
required:false,
trim:true,
unique:true,
index:true
}
UserSchema.plugin(uniqueValidator, {message:'is already taken.'});
Solution 2:
Add unique: true
to each field's definition in the schema to create separate, unique indexes for those fields:
constUserSchema=newmongoose.Schema({email: {
type:String,
required:true,
trim:true,
unique:true
},username: {
type:String,
required:false,
trim:true,
unique:true
}
})
See the Indexes section on this page for the documentation.
Post a Comment for "How To Index Multiple Unique Data Fields In A Single Document In Mongoose?"