Як створити та використовувати Enum у мангусті


87

Я намагаюся створити та використовувати enumтип у Mongoose. Я перевірив це, але я не отримую належного результату. Я використовую enumу своїй схемі мангуста наступне:

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

Але я тут трохи заплутався, як я можу вказати значення enumподібного Java NEW("new"). Як я можу зберегти вхід enumдо бази даних відповідно до його перелічених значень. Я використовую його в express node.js.

Відповіді:


135

Переліки тут - це в основному об’єкти String. Змініть рядок перерахування на enum: ['NEW', 'STATUS']замість цього. У вас там друкарська помилка зі своїми лапками.


як пов’язати це з таблицею користувачів? моя не працює. мою таблицю користувачів я вставив цю одну роль: {type: mongoose.Schema.Types.ObjectId, ref: '
role

52

З документів

Mongoose має кілька вбудованих валідаторів. Рядки мають enum як один з валідаторів. Отже, enum створює валідатор і перевіряє, чи вказано значення в масиві. Наприклад:

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


Дякую, мені вдається зберігати userType за замовчуванням. Як змінити userType на amdin з js?
Квай-Гон Джин

як зв'язати це з таблицею користувачів? моя не працює. мою таблицю користувачів я вставив цю одну роль: {type: mongoose.Schema.Types.ObjectId, ref: '
role

10

Enums - це String-об'єкти, наприклад, наприклад: enum :['a','b','c']або, можливо, так const listOfEn = ['a','b','c']; => enum: listOfEn

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.