如何在 Mongoose 中使用枚举验证字符串数组?

Don*_*al0 2 mongoose mongodb

我有一个字符串数组,它只能包含 6 种值。我已经在 Mongoose 模式中编写了此验证:

skills: [
      { type: String, enum: ["marketing", "sales", "tech", "hr", "management", "finance"] },
    ]
Run Code Online (Sandbox Code Playgroud)

当使用 key 创建用户时skills: ["sales", "hr"],猫鼬崩溃,声称:

错误:UserDB 验证失败:skills.0:["sales", "hr"]不是 path 的有效枚举值skills.0

如何解决这个问题?

tur*_*hal 5

mongoose issues-6102中已经修复了一个问题,并在此处提供了解决方案,

skills: {
  type: [
    { 
      type: String, 
      enum: ["marketing", "sales", "tech", "hr", "management", "finance"] 
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)