O Mongoose não possui uma validação interna para campos exclusivos. Eu recomendo o pacote (com isso você pode usar o validador exclusivo nos campos de email e nome de usuário):mongoose-unique-validator. Estenda seu código com:
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.'});