Karena Anda menggunakan Mongoose, salah satu opsi adalah menggunakan string email sebagai _id
lalu tambahkan bidang virtual
bernama email
yang mengembalikan _id
untuk membersihkan kode yang menggunakan email.
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);
});
Perhatikan bahwa bidang virtual tidak disertakan secara default saat mengonversi dokumen Mongoose ke objek JS biasa atau string JSON. Untuk memasukkannya, Anda harus mengatur virtuals: true
opsi di toObject()
atau toJSON()
hubungi:
var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });