Protože používáte Mongoose, jednou z možností je použít řetězec e-mailu jako _id
pole a poté přidejte virtuální pole
s názvem email
který vrací _id
k vyčištění kódu, který používá 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);
});
Všimněte si, že při převodu dokumentu Mongoose na prostý objekt JS nebo řetězec JSON není ve výchozím nastavení zahrnuto virtuální pole. Chcete-li jej zahrnout, musíte nastavit virtuals: true
možnost v toObject()
nebo toJSON()
zavolejte:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });