Comment créer et utiliser Enum dans Mongoose

87

J'essaye de créer et d'utiliser un enumtype dans Mongoose. Je l'ai vérifié, mais je n'obtiens pas le bon résultat. J'utilise enumdans mon schéma mangouste comme suit:

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

Mais je suis un peu confus ici, comment puis-je mettre la valeur d'un enumlike Java NEW("new"). Comment puis-je enregistrer un enumdans la base de données en fonction de ses valeurs énumérables. Je l'utilise dans express node.js.

Prabjot Singh
la source

Réponses:

134

Les énumérations ici sont essentiellement des objets String. Modifiez la ligne d'énumération à la enum: ['NEW', 'STATUS']place. Vous avez une faute de frappe avec vos guillemets.

Mindstormer619
la source
comment liez-vous cela à la table des utilisateurs? le mien ne fonctionne pas. ma table utilisateur j'ai inséré ce rôle: {type: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay
52

À partir des documents

Mongoose a plusieurs validateurs intégrés. Les chaînes ont enum comme l'un des validateurs. Donc enum crée un validateur et vérifie si la valeur est donnée dans un tableau. Par exemple:

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

Deeksha Sharma
la source
Merci, cela fonctionne pour moi de stocker le type d'utilisateur par défaut. Comment changer userType en amdin de js?
Qui-Gon Jinn
comment liez-vous cela à la table des utilisateurs? le mien ne fonctionne pas. ma table utilisateur j'ai inséré ce rôle: {type: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay
10

Enums est un objet String, par exemple: enum :['a','b','c']ou probablement comme ça const listOfEn = ['a','b','c']; => enum: listOfEn

hien711
la source