Aangezien je Mongoose gebruikt, is een optie om de e-mailstring te gebruiken als de _id
veld en voeg vervolgens een virtueel veld
toe met de naam email
die de _id
. retourneert om de code op te schonen die de e-mail gebruikt.
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);
});
Houd er rekening mee dat een virtueel veld niet standaard wordt opgenomen bij het converteren van een Mongoose-document naar een gewoon JS-object of JSON-tekenreeks. Om het op te nemen, moet je de virtuals: true
. instellen optie in de toObject()
of toJSON()
bel:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });