Puisque vous utilisez Mongoose, une option consiste à utiliser la chaîne de messagerie comme _id
puis ajoutez un champ virtuel
nommé email
qui renvoie le _id
pour nettoyer le code qui utilise l'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);
});
Notez qu'un champ virtuel n'est pas inclus par défaut lors de la conversion d'un document Mongoose en un objet JS simple ou une chaîne JSON. Pour l'inclure, vous devez définir le virtuals: true
option dans toObject()
ou toJSON()
appeler :
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });