Mam schemat User
, który ma pole username
. Chciałbym, aby w tym polu była rozróżniana wielkość liter, aby użytkownicy mogli rejestrować nazwy, takie jak BobDylan
. Potrzebuję jednak mojego schematu do sprawdzania nowych wpisów, aby sprawdzić, czy nie ma duplikatów, które są wrażliwe, na przykład bobdylan
.Programy pobierające/selektory mongozy do normalizowania danych
Moje badania nauczyły mnie, że powinienem stworzyć dodatkowe pole w schemacie przechowywania wersji małej/wielkiej litery, aby móc łatwo sprawdzić, czy jest ono unikatowe. Moje pytanie brzmi: jak mam to osiągnąć za pomocą interfejsu API Mongoose?
Próbowałem przy użyciu set
funkcji, takich jak:
UserSchema.path('username_lower_case').set(function(username_lower_case) {
return this.username.toLowerCase()
});
Jednak funkcja ta nie wydaje się być uruchomiony. Zasadniczo muszę powiedzieć username_lower_case
, aby być czymkolwiek, co jest username
, ale małymi literami.
Dzięki! Czy wstępne zapisywanie ma miejsce przed zatwierdzeniem? –
Nie jestem pewien, ale myślę, że gdy wywołasz 'save', sprawdzanie poprawności uruchamia się przed hakami' pre-save'. Przynajmniej to ma największy sens. –