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.

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.


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'
    },
})


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.