Cara Membuat dan Menggunakan Enum di Mongoose

92

Saya mencoba membuat dan menggunakan enumtipe di Mongoose. Saya memeriksanya, tetapi saya tidak mendapatkan hasil yang sesuai. Saya menggunakan enumprogram saya sebagai berikut:

Skema saya adalah:

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

Tapi saya agak bingung di sini, bagaimana saya bisa memasukkan nilai enumsuka Java NEW("new"). Bagaimana saya bisa menyimpan enumke dalam database sesuai dengan nilai yang dapat dihitung itu. Saya menggunakannya di express node.js.

Prabjot Singh
sumber

Jawaban:

143

Enum di sini pada dasarnya adalah objek String. Ubah baris enum menjadi enum: ['NEW', 'STATUS']. Ada kesalahan ketik di sana dengan tanda kutip Anda.

Mindstormer619
sumber
bagaimana Anda menghubungkan ini ke tabel pengguna? milikku tidak bekerja. tabel pengguna saya, saya memasukkan peran yang satu ini: {type: mongoose.Schema.Types.ObjectId, ref: 'role',},
Jm Macatangay
61

Dari dokumen

Mongoose memiliki beberapa validator bawaan. String memiliki enum sebagai salah satu validator. Jadi enum membuat validator dan memeriksa apakah nilainya diberikan dalam array. Misalnya:

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

Deeksha Sharma
sumber
Terima kasih, ini berfungsi bagi saya untuk menyimpan userType default. Bagaimana cara mengubah userType menjadi amdin dari js?
Qui-Gon Jinn
bagaimana Anda menghubungkan ini ke tabel pengguna? milikku tidak bekerja. tabel pengguna saya, saya memasukkan peran yang satu ini: {type: mongoose.Schema.Types.ObjectId, ref: 'role',},
Jm Macatangay
10

Enums adalah objek String jadi misalnya: enum :['a','b','c']atau mungkin seperti ini const listOfEn = ['a','b','c']; => enum: listOfEn

hien711
sumber
1

Katakanlah kita memiliki enum yang Roledidefinisikan oleh

export enum Role {
  ADMIN = 'ADMIN',
  USER = 'USER'
}

Kita bisa menggunakannya sebagai tipe seperti:

{
    type: String,
    enum: Role,
    default: Role.USER,
}
Mohammed_Alreai
sumber