【MongoDB】Mongooseのよく使われる定型的な設定

1. required: true

  • この設定は、フィールドが必須であることを示します。フィールドに値がない場合、ドキュメントの保存が失敗します。

name: {
  type: String,
  required: true
}


2. trim: true

  • この設定は、フィールドの値の前後にある余分な空白を自動的に削除します。

name: {
  type: String,
  trim: true
}


3. lowercase: true

  • フィールドの値を自動的に小文字に変換します。これは、例えば、ユーザー名やメールアドレスを一貫して小文字で保存するために使用されます。

email: {
  type: String,
  lowercase: true
}


4. uppercase: true

  • フィールドの値を自動的に大文字に変換します。たとえば、国コードなどを大文字で保存する場合に使用します。

countryCode: {
  type: String,
  uppercase: true
}


5. default: 値

  • フィールドにデフォルト値を設定します。ドキュメント作成時に値が指定されていない場合、このデフォルト値が使用されます。

isActive: {
  type: Boolean,
  default: true
}


6. minlength: 数値, maxlength: 数値

  • 文字列フィールドに対して、最小長と最大長を設定します。文字列がこの範囲外であれば、保存時にエラーが発生します。

username: {
  type: String,
  minlength: 3,
  maxlength: 15
}


7. enum: [値の配列]

  • フィールドが特定の値のリストのいずれかであることを強制します。リストに含まれない値を保存しようとするとエラーが発生します。

role: {
  type: String,
  enum: ['user', 'admin', 'superadmin'],
  default: 'user'
}


8. match: 正規表現

  • フィールドが特定の正規表現パターンに一致することを強制します。たとえば、メールアドレスのフォーマットを検証する場合に使用します。

email: {
  type: String,
  match: [/^\S+@\S+\.\S+$/, '有効なメールアドレスを入力してください']
}


9. unique: true

  • フィールドが一意であることを強制します。同じ値を持つドキュメントが既に存在する場合、保存時にエラーが発生します。

username: {
  type: String,
  unique: true
}


10. validate

  • validateオプションには、バリデーション関数とエラーメッセージを指定できます。バリデーション関数は、フィールドの値を引数に取り、true または false を返します。false を返した場合、保存が拒否され、指定したエラーメッセージが生成されます。

age: {
  type: Number,
  default: 0,
  validate(value) {
    if(value < 0) throw new Error("年齢を正しく入力してください。");
  },
}

この記事が気に入ったらサポートをしてみませんか?