Cách tạo và sử dụng Enum trong Mongoose


87

Tôi đang cố gắng tạo và sử dụng một enumloại trong Mongoose. Tôi đã kiểm tra nó, nhưng tôi không nhận được kết quả thích hợp. Tôi đang sử dụng enumtrong lược đồ mongoose của mình như sau:

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

Nhưng tôi hơi bối rối ở đây, làm thế nào tôi có thể đưa giá trị của một enumlike vào Java NEW("new"). Làm cách nào để lưu một thông tin enumvào cơ sở dữ liệu theo các giá trị có thể liệt kê của nó. Tôi đang sử dụng nó trong express node.js.

Câu trả lời:


136

Các enum ở đây về cơ bản là các đối tượng Chuỗi. Thay đổi dòng enum để enum: ['NEW', 'STATUS']thay thế. Bạn có một lỗi đánh máy ở đó với dấu ngoặc kép của bạn.


làm thế nào để bạn liên kết cái này với bảng người dùng? của tôi không hoạt động. bảng người dùng của tôi, tôi đã chèn một vai trò này: {type: mongoose.Schema.Types.ObjectId, ref: 'role',},
Jm Macatangay

52

Từ các tài liệu

Mongoose có một số trình xác thực sẵn có. Các chuỗi có enum là một trong những trình xác nhận. Vì vậy, enum tạo một trình xác nhận và kiểm tra xem giá trị có được cho trong một mảng hay không. Ví dụ:

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


Cảm ơn nó hoạt động để tôi lưu trữ userType mặc định. Làm cách nào để thay đổi userType thành amdin từ js?
Qui-Gon Jinn

làm thế nào để bạn liên kết cái này với bảng người dùng? của tôi không hoạt động. bảng người dùng của tôi, tôi đã chèn một vai trò này: {type: mongoose.Schema.Types.ObjectId, ref: 'role',},
Jm Macatangay

10

Enums là các đối tượng chuỗi, ví dụ: enum :['a','b','c']hoặc có thể như thế này const listOfEn = ['a','b','c']; => enum: listOfEn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.