Mongoose no tiene una validación integrada para campos únicos. Recomiendo el paquete (con esto puede usar el validador único en los campos de correo electrónico y nombre de usuario):mongoose-unique-validator. Extiende tu código con:
let uniqueValidator = 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.'});