如何创建猫鼬模式以仅接受一些谨慎的值
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 字段仅接受其值为 eng
或 hbrw
。如果它接收到一些其他值,它将返回一个错误。
我知道可以使用 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 提供此解决方案
【讨论】:
以上是关于如何创建猫鼬模式以仅接受一些谨慎的值的主要内容,如果未能解决你的问题,请参考以下文章
在猫鼬中,如果我正在创建一个包含 4 个字段的模式。但我只保存两个字段的值。如何更新未给出的字段值?
我是猫鼬的新手。我想通过添加作为另一个模式的值的字段来修改现有模式?