Dado el siguiente esquema:Mangosta: ¿cómo establecer un campo de esquema para ser la identificación?
var UserSchema = new Schema({
, email : { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
me gustaría email
a ser la clave. ¿Cómo puedo definir esto?
que podía hacer:
var UserSchema = new Schema({
, _id: { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
por lo MongoDB lo reconocería como el campo id, y adaptar mi código para referirse a _id
en lugar de email
pero que no se siente limpio para mí.
¿Alguien?
Creo que es mejor dejar _id como un ID de objeto y hacer un índice único de correo electrónico. – JohnnyHK
¿Es ese el consenso general? Tener Domain-Id's como Unique y dejar que MongoDB se encargue de los Id técnicos. –
Dado que está utilizando Mongoose, otra opción sería usar la cadena de correo electrónico como el campo _id y luego agregar un [campo virtual] (http://mongoosejs.com/docs/virtuals.html) llamado "correo electrónico" que devolvió el _id para limpiar el código que usa el correo electrónico. – JohnnyHK