如何在猫鼬中创建和使用枚举


87

我试图enum在猫鼬中创建和使用一种类型。我检查了一下,但没有得到正确的结果。我enum在猫鼬模式中使用如下:

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

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

Answers:


134

这里的枚举基本上是String对象。将枚举行enum: ['NEW', 'STATUS']改为。那里有一个带引号的错字。


您如何将其链接到用户表?我的行不通。我的用户表中我插入了这个角色:{类型:mongoose.Schema.Types.ObjectId,参考:'roles',},
Jm Macatangay

52

来自文档

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

var userSchema = new mongooseSchema({
   userType: {
        type: String,
        enum : ['user','admin'],
        default: 'user'
    },
})


谢谢,它对我有用,可以存储默认的userType。如何从js将userType更改为amdin?
Qui-Gon Jinn

您如何将其链接到用户表?我的行不通。我的用户表中我插入了这个角色:{类型:mongoose.Schema.Types.ObjectId,参考:'roles',},
Jm Macatangay

10

枚举是String对象,因此例如:enum :['a','b','c']或可能像这样 const listOfEn = ['a','b','c']; => enum: listOfEn

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.