So erstellen und verwenden Sie Enum in Mongoose


87

Ich versuche, einen enumTyp in Mongoose zu erstellen und zu verwenden . Ich habe es ausprobiert, aber ich bekomme nicht das richtige Ergebnis. Ich verwende enumin meinem Mungo-Schema Folgendes:

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

Aber ich bin hier ein bisschen verwirrt, wie kann ich den Wert eines enumLike in setzen Java NEW("new"). Wie kann ich ein enumIn in der Datenbank gemäß den aufzählbaren Werten speichern? Ich benutze es in Express Node.js.

Antworten:


135

Die Aufzählungen hier sind im Grunde String-Objekte. Ändern Sie enum: ['NEW', 'STATUS']stattdessen die Aufzählungszeile in . Sie haben dort einen Tippfehler mit Ihren Anführungszeichen.


Wie verknüpft man dies mit der Benutzertabelle? meins funktioniert nicht. In meiner Benutzertabelle habe ich diese eine Rolle eingefügt: {type: mongoose.Schema.Types.ObjectId, ref: '
role

52

Aus den Dokumenten

Mungo hat mehrere eingebaute Validatoren. Strings haben eine Aufzählung als einer der Validatoren. Enum erstellt also einen Validator und prüft, ob der Wert in einem Array angegeben ist. Z.B:

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


Vielen Dank, es funktioniert für mich, Standardbenutzertyp zu speichern. Wie ändere ich userType von js in amdin?
Qui-Gon Jinn

Wie verknüpft man dies mit der Benutzertabelle? meins funktioniert nicht. In meiner Benutzertabelle habe ich diese eine Rolle eingefügt: {type: mongoose.Schema.Types.ObjectId, ref: '
role

10

Enums ist String-Objekte, zum Beispiel: enum :['a','b','c']oder wahrscheinlich so const listOfEn = ['a','b','c']; => enum: listOfEn

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.