我正在尝试在Mongoose中创建和使用enum
类型。我检查了一下,但是我没有得到正确的结果。我在我的程序中使用enum
如下:
我的架构是:
var RequirementSchema = new mongooseSchema({
status: {
type: String,
enum : ['NEW,'STATUS'],
default: 'NEW'
},
})
但我在这里有点困惑,我怎样才能将enum
的值放在Java NEW("new")
中。如何根据数据的可枚举值将enum
保存到数据库中。我在express node.js中使用它。
答案 0 :(得分:96)
这里的枚举基本上是String对象。将枚举行更改为enum: ['NEW', 'STATUS']
。你的引号有拼写错误。
答案 1 :(得分:8)
枚举是String对象,例如:enum :['a','b','c']
或者可能是这样的
const listOfEn = ['a','b','c'];
=> enum: listOfEn
答案 2 :(得分:2)
如果您想使用 TypeScript enum
,您可以在接口 IUserSchema
中使用它,但在 Schema 中您必须使用 array
(Object.values(userRole)
)。
export enum userRole {
admin = 'admin',
user = 'user'
}
const UserSchema: Schema = new Schema({
userType: {
type: String,
enum: Object.values(userRole),
default: userRole.user, required: true
},
});
export interface IUserSchema extends Document {
userType: userRole
}
答案 3 :(得分:1)
假设我们有一个由{p>定义的枚举Role
export enum Role {
ADMIN = 'ADMIN',
USER = 'USER'
}
我们可以像这样使用它
{
type: String,
enum: Role,
default: Role.USER,
}
答案 4 :(得分:0)
从docs
猫鼬有几个内置的验证器。字符串具有枚举作为验证器之一。 因此,enum创建了一个验证器,并检查该值是否在数组中给出。 例如:
var userSchema = new mongooseSchema({
userType: {
type: String,
enum : ['user','admin'],
default: 'user'
},
})