Example 1: mongoose unique field
var SimSchema = new Schema({
msisdn : { type : String , unique : true, required : true, dropDups: true },
imsi : { type : String , unique : true, required : true, dropDups: true },
status : { type : Boolean, default: true},
signal : { type : Number },
probe_name : { type: String , required : true }
});
Example 2: mongoose validate example
const mongoose = require('mongoose')
const bcryptjs = require('bcryptjs')
const findOrCreate = require('mongoose-findorcreate')
const validator = require('mongoose-validator')
const Schema = mongoose.Schema
const setAuthSchema = new Schema(
{
username: {
type: String,
trim: true,
required: true
},
email: {
type: String,
lowercase: true,
trim: true,
validate: [
validator({
validator: 'isEmail',
message: 'Oops..please enter valid email'
})
],
required: true
},
password: {
type: String,
minlength: 8,
maxlength: 16,
trim: true,
required: true
},
authsc: {
idsocial: {
type: String,
trim: true,
default: null
},
username: {
type: String,
trim: true,
default: null
},
fullname: {
type: String,
trim: true,
default: null
},
email: {
type: String,
lowercase: true,
trim: true,
validate: [
validator({
validator: 'isEmail',
message: 'Oops..please enter valid email'
})
],
default: null
},
gender: {
type: String,
trim: true,
default: null
},
avatar: {
type: String,
trim: true,
default: null
},
provider: {
type: String,
trim: true,
default: null
}
},
role: {
type: String,
trim: true,
default: 'user'
},
isActive: {
type: Boolean,
trim: true,
default: false
}
},
{ timestamps: true }
)
setAuthSchema.plugin(findOrCreate)
setAuthSchema.pre('save', function (next) {
if (this.isModified('password')) {
const salt = bcryptjs.genSaltSync(10)
this.password = bcryptjs.hashSync(this.password, salt)
return next()
}
})
setAuthSchema.static('hashPassword', (password) => {
if (password) {
const salt = bcryptjs.genSaltSync(10)
return bcryptjs.hashSync(password, salt)
}
})
setAuthSchema.static('verifyPassword', (password, hash) => {
if (password && hash) {
return bcryptjs.compareSync(password, hash)
}
})
const AuthSchema = mongoose.model('auth', setAuthSchema)
module.exports = { AuthSchema }
Example 3: mongoose unique error message
emailVerificationTokenSchema.post('save', function(error, doc, next) {
if (error.name === 'MongoError' && error.code === 11000) {
next(new Error('email must be unique'));
} else {
next(error);
}
});
Example 4: requir mongoose
const mongoose = require('mongoose');
mongoose.connect("mongodb://localhost:27017/name", { useUnifiedTopology: true, useNewUrlParser: true });