Da Sie Mongoose verwenden, besteht eine Möglichkeit darin, die E-Mail-Zeichenfolge als _id
zu verwenden Feld und fügen Sie dann ein virtuelles Feld
hinzu namens email
das gibt die _id
zurück um den Code zu bereinigen, der die E-Mail verwendet.
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);
});
Beachten Sie, dass ein virtuelles Feld nicht standardmäßig enthalten ist, wenn ein Mongoose-Dokument in ein einfaches JS-Objekt oder eine JSON-Zeichenfolge konvertiert wird. Um es einzuschließen, müssen Sie die virtuals: true
setzen Option in toObject()
oder toJSON()
Aufruf:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });