Pra*_*ngh 56 enums mongodb node.js express
我正在尝试创建并使用enumMongoose中的类型.我检查了一下,但是我没有得到正确的结果.我enum在我的程序中使用如下:
我的架构是:
var RequirementSchema = new mongoose.Schema({
   status: {
        type: String,
        enum : ['NEW', 'STATUS'],
        default: 'NEW'
    },
})
但我在这里有点困惑,我怎么能把enum类似的价值放进去Java NEW("new").如何enum根据它的可枚举值将数据保存到数据库中.我在express node.js中使用它.
小智 11
假设我们有一个Role由以下定义的枚举
export enum Role {
  ADMIN = 'ADMIN',
  USER = 'USER'
}
我们可以将它用作如下类型:
{
    type: String,
    enum: Role,
    default: Role.USER,
}
From the docs
Mongoose has several inbuilt validators. Strings have enum as one of the validators. So enum creates a validator and checks if the value is given in an array. E.g:
var userSchema = new mongooseSchema({
   userType: {
        type: String,
        enum : ['user','admin'],
        default: 'user'
    },
})
小智 6
在架构设计中,您可以使用enum关键字轻松添加枚举值,如下所示:-
catagory: {
    type: String,
    enum: ['freeToPlay','earlyAccess','action','adventure','casual','indie','massivelyMultiplayer','racing','simulation','RPG','sports','statigy'],
    default: 'freeToPlay'
},
如果您想使用 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
}
| 归档时间: | 
 | 
| 查看次数: | 55656 次 | 
| 最近记录: |