Como você está usando o Mongoose, uma opção é usar a string de email como
_id
campo e adicione um campo virtual
chamado email
que retorna o _id
para limpar o código que usa o email. 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);
});
Observe que um campo virtual não é incluído por padrão ao converter um documento do Mongoose em um objeto JS simples ou string JSON. Para incluí-lo, você deve definir o
virtuals: true
opção no toObject()
ou toJSON()
ligar:var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });