Тъй като използвате Mongoose, една опция е да използвате имейл низа като _id
поле и след това добавете виртуално поле
с име email
който връща _id
за да изчистите кода, който използва имейла.
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);
});
Имайте предвид, че виртуално поле не е включено по подразбиране при конвертиране на Mongoose документ в обикновен JS обект или JSON низ. За да го включите, трябва да зададете virtuals: true
опция в toObject()
или toJSON()
обаждане:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });