Ponieważ używasz Mongoose, jedną z opcji jest użycie ciągu e-mail jako _id
a następnie dodaj pole wirtualne
o nazwie email
który zwraca _id
aby wyczyścić kod, który używa wiadomości e-mail.
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);
});
Pamiętaj, że pole wirtualne nie jest domyślnie dołączane podczas konwertowania dokumentu Mongoose na zwykły obiekt JS lub ciąg JSON. Aby to uwzględnić, musisz ustawić virtuals: true
opcja w toObject()
lub toJSON()
zadzwoń:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });