Jak tworzyć i używać Enum w Mongoose


87

Próbuję utworzyć i używać enumtypu w Mongoose. Sprawdziłem to, ale nie otrzymuję właściwego wyniku. Używam enumw moim schemacie mangusty w następujący sposób:

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

Ale jestem trochę zdezorientowany, jak mogę umieścić wartość enumpolubienia w Java NEW("new"). Jak mogę zapisać enumin do bazy danych zgodnie z jego wyliczalnymi wartościami. Używam go w Express node.js.

Odpowiedzi:


135

Wyliczenia tutaj są w zasadzie obiektami typu String. Zmień wiersz wyliczenia na enum: ['NEW', 'STATUS']zamiast. Masz tam literówkę ze swoimi cudzysłowami.


jak to połączyć z tabelą użytkowników? mój nie działa. w mojej tabeli użytkowników wstawiłem tę jedną rolę: {type: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay

52

Z dokumentów

Mongoose ma kilka wbudowanych walidatorów. Ciągi mają enum jako jeden z walidatorów. Więc enum tworzy walidator i sprawdza, czy wartość jest podana w tablicy. Na przykład:

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


Dzięki, że dla mnie działa przechowywanie domyślnego typu użytkownika. Jak zmienić userType na amdin z js?
Qui-Gon Jinn

jak to połączyć z tabelą użytkowników? mój nie działa. w mojej tabeli użytkowników wstawiłem tę jedną rolę: {type: mongoose.Schema.Types.ObjectId, ref: 'roles',},
Jm Macatangay

10

Enums to obiekty typu String, więc na przykład: enum :['a','b','c']lub prawdopodobnie w ten sposób const listOfEn = ['a','b','c']; => enum: listOfEn

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.