Ho schema User
che ha un campo username
. Vorrei che il campo fosse sensibile al maiuscolo/minuscolo, in modo che gli utenti possano registrare nomi come BobDylan
. Tuttavia, ho bisogno del mio schema per convalidare le nuove voci per verificare che non vi siano duplicati, in quanto sensibili, come ad esempio bobdylan
.Getter/setter mandrino per la normalizzazione dei dati
La mia ricerca mi ha insegnato che dovrei creare un campo aggiuntivo nello schema per memorizzare una versione minuscola/maiuscola, in modo da poter facilmente verificare se è unica. La mia domanda è, come potrei ottenere questo con l'API Mongoose?
Ho provato con una funzione set
, come ad esempio:
UserSchema.path('username_lower_case').set(function(username_lower_case) {
return this.username.toLowerCase()
});
Tuttavia, questa funzione non sembra essere in esecuzione. Fondamentalmente ho bisogno di dire a username_lower_case
di essere quello che è username
, ma in lettere minuscole.
Grazie! Il pre-salvataggio avviene prima della convalida? –
Non ne sono sicuro, ma penso che quando si chiama 'save', i ganci di validazione vengano eseguiti prima degli hook' pre-save'. Almeno, sarebbe più sensato. –