如何创建猫鼬模式以仅接受一些谨慎的值

Posted

技术标签:

【中文标题】如何创建猫鼬模式以仅接受一些谨慎的值【英文标题】:How to create a mongoose schema to accept only some discreet values 【发布时间】:2021-11-13 10:47:34 【问题描述】:

假设我有这个架构。

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const TestSchema = new Schema(
  language: 
  required: true,
  default: 'eng',
  ,
);

// Compile model from schema
const TestModel = mongoose.model("Test", TestSchema);

如何配置此架构,以便 language 字段仅接受其值为 enghbrw。如果它接收到一些其他值,它将返回一个错误。

我知道可以使用 if else 显式完成,但我想知道它是否可以内置到架构中。

【问题讨论】:

你可以使用enum属性,看这个问题How to Create and Use Enum in Mongoose 非常感谢它确实回答了我的问题 【参考方案1】:

这就是它的完成方式:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const TestSchema = new Schema(
  language: 
    required: true,
    enum: ['eng', 'hbrw']
    default: 'eng',
  ,
);

// Compile model from schema
const TestModel = mongoose.model("Test", TestSchema);

枚举字段根据enum 字段中给出的数据数组验证即将到来的数据。

感谢@turivishal 提供此解决方案

【讨论】:

以上是关于如何创建猫鼬模式以仅接受一些谨慎的值的主要内容,如果未能解决你的问题,请参考以下文章