Sto studiando Mongodb e sto usando Mongoose e mi piacerebbe creare un processo di registrazione molto dinamico. Ho gestito il primo passaggio della registrazione utilizzando Passport e tutto funziona correttamente, ho creato l'utente ed è presente sul DB. Ora il mio processo di registrazione continuerà e l'utente deve selezionare un "ruolo": che tipo di utente sei? Ci sono 2 opzioni: "base" e "avanzato". Di base ha solo 3 proprietà e avanzato ha le 3 proprietà di base più poche altre.Rapporto manganese
Ho bisogno di estendere il userSchema
o per aggiungere nuovi campi in base a tale ruolo, ma dopo una settimana non funziona ancora e ho provato molti NPM
come: mangusta-relazione o mangusta-schema-estendere.
Questo è fondamentalmente ciò che ho:
userSchema = new Schema({
id : Number,
email : { type: String, required: true },
role : { type: String, required: true },
profile : { ... } // Profile fields are different for each role.
});
// profile 1
basicSchema = new Schema({
info1 : { type: String, required: true },
info2 : { type: String, required: true },
info3 : { type: String, required: true }
});
// profile 2
advancedSchema = new Schema({
info1 : { type: String, required: true },
info2 : { type: String, required: true },
info3 : { type: String, required: true },
info4 : { type: String, required: true },
info5 : { type: String, required: true },
info6 : { type: String, required: true }
});
L'utente esiste già e lui è su una schermata in cui ha bisogno di scegliere un ruolo e popolare il profilo scelto.
Per informazioni sto usando nodejs e expressjs.
Spero che tu possa aiutare. Grazie.
Ha profilo dell'oggetto dell'utente deve esiste al di fuori dell'oggetto utente? O lo recupererai sempre insieme all'oggetto User? – Andy