Mongoose:スキーマのバリデーション
Mongooseのスキーマのバリデーションについてまとめていきます。
使用頻度の高いものをピックアップしてみました。
これまでスキーマのバリデーションは下記のような記述でした。
この形は省略系となっており、これ以外にも細かく定義ができます。
省略しなかった場合はオブジェクトで記述することになります。
今回はそれを確認していきましょう。
・サンプル
省略しなかった場合はこのように記述ができ、さらに情報を追加することが可能となり
ます。
例えば
「required」・・・
必須制約をかけるバリデータであり、指定された「key」は必ずオブジェクトに存在し
なければなりません。デフォルトはfalseです。
「unique」・・・
全ドキュメントの中でユニーク(重複なし)かどうかのフラグです。
ドキュメント作成時、もしくは更新時に重複してる場合はエラーとなります。
使う際はrequiredオプションと組み合わせがほぼ必須です。
これもデフォルトはfalseです。
「maxlength, minlength」・・・
最大,最小文字数を指定し、上記の場合なら10文字を超えるとエラーになります。
「max, min」・・・
第一引数は最大,最小値を指定し、第二引数にエラーメッセージも入れることができま
す。その場合は配列で渡します。(Number型のみ可)
他にも様々な型が存在します。
「default」・・・
デフォルトの値です。デフォルトでは設定されていません。
「enum」・・・
フィールドに指定できる値の列挙(String型でよく使います)で、指定の値以外の値を
入れた場合はエラーになります。
上記の場合だと、「S,M,L」のみ受付、それ以外はエラーになる挙動です。
デフォルトでは設定されていません。
これも参考にしてみてください。