如何在猫鼬中创建和使用 Enum

我试图在猫鼬中创建和使用 enum类型。我查过了,但没有正确的结果。我在程序中使用的 enum如下:

我的模式是:

var RequirementSchema = new mongooseSchema({
status: {
type: String,
enum : ['NEW,'STATUS'],
default: 'NEW'
},
})

但是这里我有点困惑,我怎么能把 enum的值放在 Java NEW("new")中呢。如何根据 enum的可枚举值将其保存到数据库中。我在 Express node.js 中使用它。

191902 次浏览

这里的枚举基本上是 String 对象。将枚举行更改为 enum: ['NEW', 'STATUS']。你这里有一个打印错误,上面有引号。

Enums 是 String 对象,例如: enum :['a','b','c']或者可能如下所示 Const listOfEn = [‘ a’,‘ b’,‘ c’] ; = > enum: listOfEn

来自 医生

Mongoose 有几个内置的验证器,字符串有 枚举作为其中一个验证器。 因此,枚举创建一个验证器,并检查该值是否在数组中给出。 例如:

const userSchema = new mongoose.Schema({
userType: {
type: String,
enum : ['user','admin'],
default: 'user'
},
})


假设我们有一个枚举 Role,其定义为

export enum Role {
ADMIN = 'ADMIN',
USER = 'USER'
}

我们可以用它作为类型:

{
type: String,
enum: Role,
default: Role.USER,
}

如果您想使用 TypeScriptenum,您可以在接口 IUserSchema中使用它,但在 Schema 中必须使用 array(Object.values(userRole))。

enum userRole {
admin = 'admin',
user = 'user'
}


interface IUserSchema extends Document {
userType: userRole
}


const UserSchema: Schema = new Schema({
userType: {
type: String,
enum: Object.values(userRole),
default: userRole.user,
required: true
}
});

在模式设计中,可以通过使用如下 枚举关键字轻松地添加枚举值:-

catagory: {
type: String,
enum: ['freeToPlay','earlyAccess','action','adventure','casual','indie','massivelyMultiplayer','racing','simulation','RPG','sports','statigy'],
default: 'freeToPlay'
},