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.

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.


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


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


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,
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.