Cómo crear y usar Enum en Mongoose


87

Estoy tratando de crear y usar un enumtipo en Mongoose. Lo comprobé, pero no obtengo el resultado adecuado. Estoy usando enumen mi esquema de mangosta de la siguiente manera:

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

Pero estoy un poco confundido aquí, ¿cómo puedo poner el valor de un me enumgusta Java NEW("new")? ¿Cómo puedo guardar una entrada enumen la base de datos de acuerdo con sus valores enumerables? Lo estoy usando en express node.js.

Respuestas:


134

Las enumeraciones aquí son básicamente objetos String. Cambie la línea de enumeración a en su enum: ['NEW', 'STATUS']lugar. Tiene un error tipográfico allí con las comillas.


¿Cómo se vincula esto a la tabla de usuarios? el mío no funciona. mi tabla de usuario inserté este rol: {tipo: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay

52

De los documentos

Mongoose tiene varios validadores incorporados. Las cadenas tienen enum como uno de los validadores. Entonces enum crea un validador y verifica si el valor se da en una matriz. P.ej:

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


Gracias, me funciona almacenar userType predeterminado. ¿Cómo cambiar userType a amdin desde js?
Qui-Gon Jinn

¿Cómo se vincula esto a la tabla de usuarios? el mío no funciona. mi tabla de usuario inserté este rol: {tipo: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay

10

Enums es objetos String, por ejemplo: enum :['a','b','c']o probablemente así const listOfEn = ['a','b','c']; => enum: listOfEn

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.