06/04/2021, 14:50

Giới thiệu MongoDB trong NodeJS - NodeJS căn bản

Trong chương này chúng mình sẽ cùng nhau đi tìm hiểu về MongoDB, đây cũng là một cơ sở dữ liệu được rất nhiều lập trình viên sử dụng trong các dự án NodeJS của mình. Bài này mình sẽ tập chung giới thiệu về MongoDB và bước đầu để cài đặt MongoDB trong NodeJS. 1. MongoDB là gì ? MongoDB là một ...

Trong chương này chúng mình sẽ cùng nhau đi tìm hiểu về MongoDB, đây cũng là một cơ sở dữ liệu được rất nhiều lập trình viên sử dụng trong các dự án NodeJS của mình. Bài này mình sẽ tập chung giới thiệu về MongoDB và bước đầu để cài đặt MongoDB trong NodeJS.

1. MongoDB là gì ?

MongoDB là một cơ sở dữ liệu tài liệu với khả năng mở rộng và linh hoạt mà bạn muốn với truy vấn và lập chỉ mục mà bạn cần. Nó được sử dụng rất rộng rãi bởi khả năng phát triển ứng dụng dễ dàng hơn.

Mô hình lưu trữ dữ liệu của MongoDB rất đơn giản để các nhà phát triển tìm hiểu và sử dụng, trong khi vẫn cung cấp tất cả các khả năng cần thiết để đáp ứng các yêu cầu phức tạp nhất ở mọi quy mô. MongoDB cung cấp các module cho hơn 10 ngôn ngữ trong đó có Node.js, và cộng đồng cũng đã xây dựng thêm hàng tá ngôn ngữ.

2. Một số điểm nổi bật của MongoDB

Dưới đây là một vài điểm nổi bật mà MongoDB cung cấp.

  • MongoDB lưu trữ dữ liệu trong các tài liệu linh hoạt, giống như JSON, có nghĩa là các trường có thể thay đổi từ tài liệu này sang tài liệu khác và cấu trúc dữ liệu có thể được thay đổi theo thời gian.
  • Mô hình dữ liệu tương đồng với các object dữ liệu trong quá trình lập trình, giúp dữ liệu dễ dàng làm việc với các dữ liệu.
  • Truy vấn đặc biệt, lập chỉ mục và tổng hợp thời gian thực cung cấp các cách mạnh mẽ để truy cập và phân tích dữ liệu của bạn
  • MongoDB là một cơ sở dữ liệu phân tán ở nhân của nó, vì vậy tính sẵn sàng cao, khả năng mở rộng cao (theo chiều ngang), bạn có thể mổ rộng mô hình lưu trữ bằng cách thêm các máy chủ khác nhau ở nhiều địa điểm mà không phải nâng cấp phần cứng của server duy nhất như các hệ quản trị cơ sỡ dữ liệu MySQL.
  • MongoDB là miễn phí để sử dụng.

MongoDB lưu trữ dữ liệu một cách linh hoạt theo dạng JSON, trong khi đó MySQL lưu trữ dữ liệu theo các bảng cấu trúc. Mô hình lưu trữ khác nhau bởi vậy với việc xử lý các dữ liệu lớn người ta thường dùng các hệ quản trị cơ sở dữ liệu NoSQL ( như MongoDB, Redis).

3. Một số khái niệm trong MongoDB

MongoDB có các khái niệm cũng như thuật ngữ hay dùng trong quá trình làm việc, một số khái niệm giống nhau với các hệ quản trị cơ sở dữ liệu quan hệ (MySQL,..). Dưới đây là bảng các khái niệm hay được dùng trong MongoDB:

Một số khái niệm có ở MongoDB như:

  • Collection: Một nhóm các tài liệu (document) MongoDB. Một collection tương đương với bảng(table) RDBMS. Một collection tồn tại trong một cơ sở dữ liệu. Collection phải tuân thủ theo bất cứ một khuân mẫu sẵn có nào. Các document trong một collection có thể có các field khác nhau. Thông thường, tất cả document trong một collection có cấu trúc tương tự hoặc liên quan.
  • Document: Một bản ghi trong collection MongoDB và đơn vị dữ liệu cơ bản trong MongoDB. Các tài liệu (document) tương tự như các đối tượng JSON nhưng tồn tại trong cơ sở dữ liệu ở định dạng có nhiều kiểu dữ liệu hơn được gọi là BSON.
  • Field: Một cặp name-value trong một document. Một document có 0 hoặc nhiều trường (field). Các fileld tương tự như các cột(column) trong cơ sở dữ liệu quan hệ (RDBMS).

Việc tổ chức mô hình dữ liệu trong MongoDB rất khác với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Sau đây mình có một doucment trong MongoDB:

mongodb collection png

4. Làm việc với MongoDB trong NodeJS

Trước khi tiếp tục với hướng dẫn này, bạn nên có kiến ​​thức cơ bản về cơ sở dữ liệu, lập trình NodeJS căn bản, v.v. Vì những kiến thức ở chương này sẽ liên quan rất nhiều đến chương trước đó. Để sử dụng MongoDB trong NodeJS chúng ta cần phải cài đặt:

  • MongoDB server
  • mongoDB Driver.

Trong chương này mình sẽ sử dụng module mongoose làm mongoDB Driver. Mongoose cung cấp một giải pháp dựa trên lược đồ đơn giản để mô hình hóa dữ liệu ứng dụng của bạn. Nó bao gồm các khuân mẫu tích hợp, xác thực, xây dựng truy vấn, logic dữ liệu,...

Hoàng Hải Đăng

24 chủ đề

7226 bài viết

Cùng chủ đề
0