如何在 Mongoose 中创建和使用枚举
How to Create and Use Enum in Mongoose
我正在尝试在 Mongoose 中创建和使用 enum
类型。我检查了一下,但没有得到正确的结果。我在我的程序中使用 enum
如下:
我的架构是:
var RequirementSchema = new mongooseSchema({
status: {
type: String,
enum : ['NEW','STATUS'],
default: 'NEW'
},
})
但是我在这里有点困惑,我怎么能把 enum
的值放在 Java NEW("new")
中呢?如何根据可枚举值将 enum
保存到数据库中。我在 express node.js.
中使用它
谢谢
这里的枚举基本上都是String对象。将枚举行更改为 enum: ['NEW', 'STATUS']
。你的引号有错字。
Enums 是 String 对象,例如:enum :['a','b','c']
或者可能像这样
const listOfEn = ['a','b','c'];
=> enum: listOfEn
来自docs
Mongoose 有几个内置的验证器。字符串将 enum 作为验证器之一。
因此 enum 创建了一个验证器并检查该值是否在数组中给出。
例如:
var userSchema = new mongooseSchema({
userType: {
type: String,
enum : ['user','admin'],
default: 'user'
},
})
假设我们有一个由
定义的枚举 Role
export enum Role {
ADMIN = 'ADMIN',
USER = 'USER'
}
我们可以像这样使用它:
{
type: String,
enum: Role,
default: Role.USER,
}
如果您想使用 TypeScript enum
,您可以在接口 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
}
});
在架构设计中,您可以使用 enum 关键字轻松添加枚举值,如下所示:-
catagory: {
type: String,
enum: ['freeToPlay','earlyAccess','action','adventure','casual','indie','massivelyMultiplayer','racing','simulation','RPG','sports','statigy'],
default: 'freeToPlay'
},
我正在尝试在 Mongoose 中创建和使用 enum
类型。我检查了一下,但没有得到正确的结果。我在我的程序中使用 enum
如下:
我的架构是:
var RequirementSchema = new mongooseSchema({
status: {
type: String,
enum : ['NEW','STATUS'],
default: 'NEW'
},
})
但是我在这里有点困惑,我怎么能把 enum
的值放在 Java NEW("new")
中呢?如何根据可枚举值将 enum
保存到数据库中。我在 express node.js.
谢谢
这里的枚举基本上都是String对象。将枚举行更改为 enum: ['NEW', 'STATUS']
。你的引号有错字。
Enums 是 String 对象,例如:enum :['a','b','c']
或者可能像这样
const listOfEn = ['a','b','c'];
=> enum: listOfEn
来自docs
Mongoose 有几个内置的验证器。字符串将 enum 作为验证器之一。 因此 enum 创建了一个验证器并检查该值是否在数组中给出。 例如:
var userSchema = new mongooseSchema({
userType: {
type: String,
enum : ['user','admin'],
default: 'user'
},
})
假设我们有一个由
定义的枚举Role
export enum Role {
ADMIN = 'ADMIN',
USER = 'USER'
}
我们可以像这样使用它:
{
type: String,
enum: Role,
default: Role.USER,
}
如果您想使用 TypeScript enum
,您可以在接口 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
}
});
在架构设计中,您可以使用 enum 关键字轻松添加枚举值,如下所示:-
catagory: {
type: String,
enum: ['freeToPlay','earlyAccess','action','adventure','casual','indie','massivelyMultiplayer','racing','simulation','RPG','sports','statigy'],
default: 'freeToPlay'
},