Tổng quan về Mongoose trong nodejs

  • Saturday 01/06/2024

MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng. MongoDB được viết bằng C++. Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng. Bài viết sau sẽ giới thiệu tổng quan về thư viện mongoose giúp bạn kết nối từ ứng dụng node của bạn đến mongodb.

Mongoose

Mongoose là gì

Mongoose là một thư viện phổ biến trong JavaScript, được sử dụng để làm việc với MongoDB, một cơ sở dữ liệu NoSQL. Mongoose cung cấp các chức năng cho việc tạo ra và làm việc với các schema. Mongoose hiện có 8 SchemaTypes:

  1. Number
  2. String
  3. Date
  4. Buffer
  5. Boolean
  6. Mixed
  7. ObjectId
  8. Array

Mongoose cho phép bạn định nghĩa các đặc tính quan trọng cho mỗi loại dữ liệu trong schema, bao gồm:

  1. Giá trị mặc định (default): Đặt giá trị mặc định cho trường nếu không được cung cấp giá trị.
  2. Hàm xác thực (validate): Xác định các hàm để kiểm tra tính hợp lệ của dữ liệu trước khi lưu vào cơ sở dữ liệu.
  3. Trường bắt buộc (required): Đánh dấu một trường là bắt buộc phải có giá trị.
  4. Hàm get: Cho phép bạn thao tác dữ liệu trước khi nó được trả về như một object.
  5. Hàm set: Cho phép bạn thao tác dữ liệu trước khi nó được lưu vào cơ sở dữ liệu.
  6. Indexes: Tạo các chỉ mục để tăng tốc độ truy vấn dữ liệu.

Ngoài các tùy chọn phổ biến, một số kiểu dữ liệu nhất định nó còn cho phép bạn tùy chỉnh thêm cách dữ liệu được lưu trữ và truy xuất từ cơ sở dữ liệu. Ví dụ, kiểu dữ liệu String cho phép bạn chỉ định các tùy chọn bổ sung sau:

  • Chuyển đổi dữ liệu thành chữ thường.
  • Chuyển đổi dữ liệu thành chữ in hoa.
  • Cắt bớt dữ liệu trước khi lưu.
  • Sử dụng biểu thức chính quy để giới hạn dữ liệu được phép lưu trong quá trình xác thực.
  • Định nghĩa một danh sách các chuỗi hợp lệ (enum).

Các thuộc tính Number và Date đều hỗ trợ việc chỉ định giá trị tối thiểu và tối đa cho phép cho trường đó.

Ngoài ra có một số kiểu dữ liệu đặc biệt mà bạn cần lưu ý, chẳng hạn như Buffer, Mixed, ObjectId và Array.

  • Kiểu dữ liệu Buffer: Cho phép lưu trữ dữ liệu nhị phân. Một ví dụ phổ biến về dữ liệu nhị phân là hình ảnh hoặc các tệp được mã hóa, như tài liệu PDF.
  • Kiểu dữ liệu Mixed: Biến thuộc tính thành một trường “anything goes” (thứ gì cũng được). Trường này không có cấu trúc xác định, cho phép nhà phát triển sử dụng MongoDB linh hoạt. Tuy nhiên, hãy cảnh giác khi sử dụng kiểu dữ liệu này vì bạn sẽ mất nhiều tính năng hữu ích mà Mongoose cung cấp, chẳng hạn như xác thực dữ liệu và theo dõi các thay đổi của đối tượng để tự động cập nhật khi lưu.
  • Kiểu dữ liệu ObjectId: Thường được sử dụng để chỉ định một liên kết đến một tài liệu khác trong cơ sở dữ liệu của bạn. Ví dụ, nếu bạn có một bộ sưu tập về sách và tác giả, tài liệu sách có thể chứa thuộc tính ObjectId tham chiếu đến tài liệu tác giả cụ thể.
  • Kiểu dữ liệu Array: Cho phép lưu trữ các mảng giống như trong JavaScript. Với kiểu dữ liệu Array, bạn có thể thực hiện các chức năng phổ biến của mảng JavaScript, chẳng hạn như push, pop, shift, slice, v.v.

Cảm ơn bạn đã xem qua, bạn có thể tham khảo thêm bài viết mongodb tại đây.

P.A Việt Nam cung cấp đa dạng các Plan Hosting Nodejs đáp ứng yêu cầu của khách hàng
Hosting Nodejs
Cloud Nodejs

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Rate this post