6
User
スキーマがあり、username
フィールドを持っています。私はこのフィールドを大文字と小文字を区別するようにしたいので、ユーザーはBobDylan
のような名前を登録することができます。しかし、私は、bobdylan
のような機密情報を入れて、重複がないことを確認するために新しいエントリを検証するために私のスキーマが必要です。データを正規化するためのマングースゲッター/セッター
私の研究は、それが一意である場合、私は簡単に確認できるように、私は、下ケース/大文字のバージョンを格納するためのスキーマに追加フィールドを作成する必要があることを教えてくれました。私の質問は、どのように私はMongoose APIでこれを達成できますか?
私のような、set
機能を使用して試してみました:
UserSchema.path('username_lower_case').set(function(username_lower_case) {
return this.username.toLowerCase()
});
ただし、この機能が実行されていないようです。私は基本的には、username_lower_case
にはusername
が何であるかを伝える必要がありますが、小文字です。
ありがとう!検証前に事前保存が行われますか? –
私は確かではありませんが、あなたが 'save'を呼び出すと、検証フックは' pre-save'フックの前に実行されると思います。少なくとも、それは最も理にかなっています。 –