Dato il seguente schema:Mangusta: come impostare un campo schema come ID?
var UserSchema = new Schema({
, email : { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
mi piacerebbe email
essere la chiave. Come posso definirlo?
che potevo fare:
var UserSchema = new Schema({
, _id: { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
così MongoDB sarebbe riconoscere come l'id-campo, e adattare il mio codice per fare riferimento a _id
invece di email
, ma che non si sente pulito per me.
Chiunque?
penso che tu sia meglio lasciare _id come ObjectID e fare e-mail un indice univoco. – JohnnyHK
È questo il consenso generale? Avere ID di dominio come Unico e lasciare che MongoDB si occupi degli Id tecnici? –
Dato che stai usando Mongoose, un'altra opzione sarebbe quella di utilizzare la stringa email come campo _id e quindi aggiungere un [campo virtuale] (http://mongoosejs.com/docs/virtuals.html) denominato "email" che ha restituito _id per pulire il codice che utilizza l'e-mail. – JohnnyHK