Here's my user Schema :

const userSchema = new mongoose.Schema({
  username: {
      type: String,
      validate: function (v) {
          return /([0-9a-zA-Z])\w{6,}/.test(v);
      },
      required: [true, "Username required"],
  },
  passwordHash: {
      type: String,
      required: [true, "PasswordHash required"],
  },
  role: {
      type: String,
      required: [true, "User role required"],
  },});

How can I make the role field as an array of two items -admin and manager, where the user can only choose between those two options?

推荐答案

Try using enum like so

  role: {
   type: String,
   enum: ["manager", "admin"],
   default: "manager",
  }

Javascript相关问答推荐

基于javascript中的键值的数据分组?

为对象的嵌套数组分配增量索引?

Discord.js - 在 1 分钟内检测到某条消息的回复

为什么在 JavaScript 的 forEach 中删除元素会有奇怪的行为?

松果 | Vue3 - 访问深层对象中的数组

将多图数据放入树对象的 JavaScript 递归函数

调整窗口大小时图表自动zoom (使用谷歌网络应用程序制作)

从不同的集合中获取数据,同时对不同的集合执行聚合

正则表达式:匹配大于或等于 1001 的数字

有条件地判断上下文中的值,然后在登录后在 React 中的同一函数调用中导航

使用上下文 API 进行身份验证,继续重定向到登录页面

第二组动态创建按钮的事件拒绝工作

Map 根据 Typescript 中的键类型设置不同类型的值

我无法将 javaScript 函数(地理编码)的返回值存储在变量中

如何在react 中改变状态的值

如何在 Facebook 等无限屏幕上使用 JavaScriptExecutor 在一段时间后停止寻找元素?

使用类验证器验证嵌套的 DTO 对象

将 id 添加到 html 中的 Select 后,表单中的下拉菜单不会重置

JS - 对于字符串中具有特定 URL 的每个锚链接,将锚链接替换为其文本

如何使用 D8 获取 WebAssembly 的功能优化状态?