Como está usando Mongoose, una opción es usar la cadena de correo electrónico como _id
y luego agregue un campo virtual
llamado email
que devuelve el _id
para limpiar el código que utiliza el correo electrónico.
var userSchema = new Schema({
_id: {type: String},
passwordHash: {type: String},
roles: {type: [String]}
});
userSchema.virtual('email').get(function() {
return this._id;
});
var User = mongoose.model('User', userSchema);
User.findOne(function(err, doc) {
console.log(doc.email);
});
Tenga en cuenta que un campo virtual no se incluye de forma predeterminada al convertir un documento de Mongoose en un objeto JS simple o una cadena JSON. Para incluirlo, debe configurar virtuals: true
opción en toObject()
o toJSON()
llamar:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });