Hướng dẫn how to store enum in mongodb - cách lưu trữ enum trong mongodb
TL; DR: Chuỗi có lẽ là sự lựa chọn an toàn hơn và sự khác biệt về hiệu suất nên không đáng kể. Các số nguyên có ý nghĩa đối với các bộ sưu tập lớn trong đó enum phải được lập chỉ mục. Ymmv. Show
True.
Đây là một lợi ích chính của số nguyên theo ý kiến của tôi. Tuy nhiên, nó cũng đòi hỏi bạn phải đảm bảo các giá trị liên quan của 1 không thay đổi. Nếu bạn vặn nó lên, bạn gần như chắc chắn sẽ tàn phá, đó là một bất lợi lớn.almost certainly wreak havoc, which is a huge disadvantage.
Nếu bạn thực sự sử dụng một loại dữ liệu enum, có lẽ đó là một số nguyên trong nội bộ, vì vậy số nguyên nên yêu cầu ít xử lý hơn. Dù bằng cách nào, chi phí đó nên không đáng kể.
Tôi đang lặp lại rất nhiều những gì đã nói, nhưng có lẽ điều đó giúp các độc giả khác. Tổng hợp:
Nếu bạn muốn lưu giá trị enum java vào db dưới dạng tên enum, thì trình điều khiển Mongo sẽ hỗ trợ điều đó. Ví dụ: nếu bạn có một enum
Nhập chế độ FullScreenen EXIT Mode FullScreen và nó được đăng ký với nhà cung cấp codec Mongo là
Nhập chế độ FullScreenen EXIT Mode FullScreen Sau đó, bất cứ khi nào bạn lưu một thể hiện của một lớp với một loại thuộc tính ProcessType vào DB, tài liệu Mongo kết quả sẽ có giá trị chuỗi 0 hoặc 1 cho thuộc tính đó.Nếu đó là tất cả những gì bạn cần, thì điều sau đây không dành cho bạn. Trong trường hợp đó, bạn có thể làm theo hướng dẫn của Mongo Pojo để hướng dẫn bạn. Sau đây là một cách để lưu trữ giá trị liên quan đến enum java trong MongoDB. Tại sao ai đó muốn làm điều đó?
Trên đây là một vài lý do để lưu các giá trị enum thay vì tên vào MongoDB. Một điểm đau khác đối với tôi là so sánh các giá trị enum được giải mã ở phía trước. Sau đây là enum TypeScript Front-end cho Java enum trên.
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn. Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS). Thực hiệnSteps:
Tôi sẽ làm cho một số lớp là chung chung vì điều này có thể được sử dụng để giải mã tất cả các enum. Tạo nhà cung cấp codecTôi sẽ không cung cấp nhập khẩu vì bạn nên có Trình điều khiển Mongo Java và với IDE hiện đại, bạn có thể tự động nhập tất cả nhập khẩu.
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn.
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn. Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS). Thực hiện
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn. Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS). Thực hiện Tạo và đăng ký một nhà cung cấp codec với Cơ quan đăng ký mã Mongo mà Mongo sử dụng để xác định bộ giải mã enum nào để sử dụng giá trị enum java
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn. Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS).
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn. Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS). Thực hiện
Nhập chế độ FullScreenen EXIT Mode FullScreen Nếu chúng tôi sử dụng bộ giải mã enum mặc định được cung cấp bởi Mongo Java Driver, thì các giá trị của chúng tôi phải giống như tên trên Java Enum, quá kết hợp và nghiêm ngặt để chúng tôi viết mã dễ đọc hơn.
Nhập chế độ FullScreenen EXIT Mode FullScreen Với hướng dẫn dưới đây và việc sử dụng biến áp lớp để giải mã dữ liệu được gửi từ phụ trợ, bạn sẽ có thể ánh xạ liền mạch các lớp Java thành các lớp TypeScript (JS). Thực hiện Nhập chế độ FullScreenen EXIT Mode FullScreen Tạo và đăng ký một nhà cung cấp codec với Cơ quan đăng ký mã Mongo mà Mongo sử dụng để xác định bộ giải mã enum nào để sử dụng giá trị enum java Chúng ta có thể lưu trữ enum trong MongoDB không?Các bước: Tạo và đăng ký một nhà cung cấp Codec với Cơ quan đăng ký mã Mongo mà Mongo sử dụng để xác định bộ giải mã enum nào để sử dụng giá trị enum Java. Tạo và đăng ký Bộ giải mã Enum cho ProcessType. Tạo và đăng ký Enum với DB.Create and register a codec provider with Mongo Code Registry which Mongo uses to determine which Enum decoder to use a Java Enum value. Create and register Enum decoder for ProcessType. Create and register Enum with DB.
Các enum được lưu trữ trong cơ sở dữ liệu như thế nào?Trước hết, để lưu các giá trị enum trong cơ sở dữ liệu quan hệ bằng JPA, bạn không phải làm bất cứ điều gì.Theo mặc định, khi một enum là một phần của một thực thể, JPA ánh xạ các giá trị của nó thành các số bằng phương thức Ordinal ().Điều đó có nghĩa là không có tùy chỉnh JPA lưu trữ giá trị enum dưới dạng số.JPA maps its values into numbers using the ordinal() method. What it means is that without customizations JPA stores enum value as numbers.
Enum trong lược đồ Mongoose là gì?Mongoose có một số trình xác nhận sẵn có.Chuỗi có enum là một trong những trình xác nhận.Vì vậy, Enum tạo trình xác thực và kiểm tra xem giá trị được đưa ra trong một mảng.Ví dụ: const Userschema = New Mongoose.Schema ({userType: {type: String, enum: ['user', 'admin'], mặc định: 'user'},})creates a validator and checks if the value is given in an array. E.g: const userSchema = new mongoose. Schema({ userType: { type: String, enum : ['user','admin'], default: 'user' }, })
Việc sử dụng enum trong Mongoose là gì?Chuỗi Mongoose và các loại số có Trình xác thực Enum.Trình xác nhận enum là một mảng sẽ kiểm tra xem giá trị được đưa ra có phải là một mục trong mảng không.Nếu giá trị không nằm trong mảng, Mongoose sẽ ném xác thực khi bạn cố gắng lưu ().an array that will check if the value given is an item in the array. If the value is not in the array, Mongoose will throw a ValidationError when you try to save() . |