Download app

Quét mã QR để tải về ứng dụng

QR code
preload-home

MongoDB là gì? Các câu lệnh trong mongodb cho người mới

14/06/2021, 01:53 pm
2,069

MongoDB là cơ sở dữ liệu phi quan hệ đang được nhiều người dùng tìm hiểu hiện nay. Bởi vậy, trong bài viết này Nhân Hòa sẽ giúp bạn có cái nhìn tổng quan hơn về MongoDB. Hãy theo dõi bài viết dưới đây để hiểu MongoDB là gì cũng như các tính năng nổi bật của nó.

Hiểu rõ MongoDB là gì?

MongoDB là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.

MongoDB là gì?

MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vào tháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform as a Service) tương tự như Windows Azure và Google App Engine. Sau đó nó đã được chuyển thành nguồn mở từ năm 2009.

>>> Xem thêm: MySQL là gì? Tổng quan từ A - Z thông tin MySQL 

NoSQL là gì?

NoSQL là 1 dạng CSDL mã nguồn mở và được viết tắt bởi: Non-Relational SQL hay có nơi thường gọi là Not-Only SQL. NoSQL được phát triển trên Javascript Framework với kiểu dữ liệu là JSON và dạng dữ liệu theo kiểu key và value.

NoSQL ra đời như là 1 mảnh vá cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu quan hệ RDBMS (Relational Database Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng,... Với NoSQL bạn có thể mở rộng dữ liệu mà không lo tới những việc như tạo khóa ngoại, khóa chính, kiểm tra ràng buộc .v.v ...

NoSQL là gì?

NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng. NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn, ví dụ như FaceBook sử dụng Cassandra do FaceBook phát triển, Google phát triển và sử dụng BigTable,...

Ưu điểm và nhược điểm của MongoDB

- Về ưu điểm của MongoDB

+ Đầu tiên có thể nhắc đến là tính linh hoạt lưu trữ dữ liệu theo các kích cỡ khác nhau, dữ liệu dưới dạng hướng tài liệu JSON nên bạn có thể chèn vào thoải mái bất cứ thông tin gì bạn muốn

+ Khác với RDBMS, dữ liệu trong đây không có sự ràng buộc và không có yêu cầu tuân theo khuôn khổ nhất định, điều này giúp bạn tiết kiệm thời gian cho việc kiểm tra sự thỏa mãn về cấu trúc nếu muốn chèn, xóa, cập nhật hay thay đổi các dữ liệu trong bảng

+ MongoDB dễ dàng mở rộng hệ thống bằng cách thêm node vào cluster – cụm các node chứa dữ liệu giao tiếp với nhau

+ Ưu điểm thứ tư là tốc độ truy vấn nhanh hơn nhiều so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS do dữ liệu truy vấn được cached lên bộ nhớ RAM để lượt truy vấn sau diễn ra nhanh hơn mà không cần đọc từ ổ cứng

+ Cũng là một ưu điểm về hiệu suất truy vấn của MongoDB, trường dữ liệu “_id” luôn được tự động đánh chỉ mục để đạt hiệu suất cao nhất

 

Ưu điểm và nhược điểm của MongoDB

- Về nhược điểm của MongoDB

+ Một ưu điểm của MongoDB cũng chính là nhược điểm của nó. MongoDB không có các tính chất ràng buộc như trong RDBMS nên khi thao tác với mongoDB thì phải hết sức cẩn thận

+ Tốn bộ nhớ do dữ liệu lưu dưới dạng key-value, các collection chỉ khác về value do đó key sẽ bị lặp lại. Không hỗ trợ join nên dễ bị dư thừa dữ liệu

+ Khi insert/update/remove bản ghi, MongoDB sẽ chưa cập nhật ngay xuống ổ cứng, mà sau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng điều này sẽ là nhược điểm vì sẽ có nguy cơ bị mất dữ liệu khi xảy ra các tình huống như mất điện…

>>> Xem thêm: MariaDB là gì? Ưu điểm nào của MariaDB vượt trội hơn so với MySQL?

Các tính năng nổi bật của MongoDB

Mongodb được sử dụng rất nhiều và được đánh giá vô cùng cao nhờ sở hữu nhiều đặc điểm nổi trội là: 

- MongoDB chính là một database hướng tài liệu, nên khi đó mọi dữ liệu sẽ được lưu trữ trong document theo kiểu JSON thay vì lưu theo dạng bảng như CSDL quan hệ nên việc truy cập vấn sẽ nhanh chóng hơn

- Với các CSDL quan hệ thì chúng ta sẽ có khái niệm bảng, khi đó các cơ sở dữ liệu quan hệ sẽ sử dụng các bảng để có thể lưu trữ dữ liệu, còn với Mongodb thì bạn cần phải sử dụng khái niệm collection thay cho bảng

- Mongodb chính là một hệ quản trị cơ sở dữ liệu mà trong đó mã nguồn mở là CSDL thường thuộc NoSQL và được hàng triệu người sử dụng

Các tính năng nổi bật của MongoDB

- So với RDBMS thì trong MongoDB collection thường sẽ ứng với table, còn document sẽ tương ứng với row. MongoDB sẽ sử dụng các document để thay cho row trong RDBMS

- Với các collection có trong MongoDB thường sẽ được cấu trúc rất linh hoạt nên nó cho phép các dữ liệu được lưu trữ mà không cần phải tuân theo bất kỳ một cấu trúc nhất định nào

- Các thông tin có liên quan đều sẽ được lưu trữ cùng với nhau để người dùng có thể truy cập truy vấn nhanh hơn thông qua các ngôn ngữ truy vấn MongoDB

>>> Xem thêm: Tối Ưu Database MySQL trên VPS Linux 

Nên sử dụng MongoDB khi nào?

MongoDB là hệ quản trị cơ sở dữ liệu NoSQL phổ biến, được nhiều doanh nghiệp và lập trình viên lựa chọn nhờ tính linh hoạt, hiệu suất cao và khả năng mở rộng vượt trội. Tuy nhiên, không phải lúc nào MongoDB cũng là lựa chọn phù hợp. Dưới đây là những trường hợp điển hình mà bạn nên cân nhắc sử dụng MongoDB trong dự án của mình.

 

- Dữ liệu linh hoạt, không cố định schema: MongoDB rất phù hợp khi dữ liệu có cấu trúc thay đổi thường xuyên, không cần định nghĩa cứng nhắc về bảng và cột. Bạn có thể thêm, bớt hoặc chỉnh sửa các trường của document mà không ảnh hưởng đến toàn bộ hệ thống.

- Cần mở rộng hệ thống dễ dàng khi dữ liệu lớn: MongoDB hỗ trợ phân mảnh dữ liệu (sharding), cho phép phân phối dữ liệu trên nhiều máy chủ khác nhau để đảm bảo hiệu suất truy cập cao và dễ mở rộng theo chiều ngang.

- Lưu trữ dữ liệu dạng tài liệu: Với cấu trúc lưu trữ dạng JSON/BSON, MongoDB lý tưởng để lưu trữ các loại dữ liệu như hồ sơ người dùng, đơn hàng, sản phẩm, blog, bình luận – nơi thông tin có thể khác nhau giữa các bản ghi.

- Phù hợp với dữ liệu phi cấu trúc hoặc bán cấu trúc: MongoDB rất thích hợp khi làm việc với dữ liệu không chuẩn hóa như dữ liệu từ thiết bị IoT, log hệ thống, phản hồi từ API, hoặc metadata, nơi bạn không thể định nghĩa chính xác mọi trường dữ liệu trước.

- Yêu cầu tốc độ truy xuất và ghi dữ liệu nhanh: MongoDB được tối ưu cho tốc độ đọc/ghi cao, rất phù hợp cho các hệ thống có số lượng người dùng lớn hoặc thao tác dữ liệu liên tục, như mạng xã hội, ứng dụng tin tức hoặc game online.

- Cần triển khai ứng dụng nhanh: Vì không yêu cầu định nghĩa cấu trúc trước, MongoDB giúp đội ngũ phát triển rút ngắn thời gian xây dựng MVP (Minimum Viable Product) và thay đổi nhanh trong quá trình thử nghiệm.

- Phát triển với Node.js và JavaScript stack: MongoDB hoạt động rất mượt mà với các công nghệ hiện đại như Node.js, Express, React, Vue... nhờ cùng sử dụng định dạng JSON. Điều này làm cho việc trao đổi dữ liệu giữa client và server dễ dàng hơn.

- Hệ thống cần lưu trữ dữ liệu lớn (Big Data): Với khả năng xử lý lượng lớn document cùng lúc và hỗ trợ tốt cho thao tác song song, MongoDB là lựa chọn tốt cho hệ thống cần thu thập và xử lý dữ liệu khổng lồ theo thời gian thực.

Các câu lệnh cơ bản được sử dụng trong MongoDB

1. Tạo database trong MongoDB

Để tạo mới hoặc chuyển sang một database trong MongoDB, sử dụng lệnh: use DatabaseName

Trong đó, DatabaseName là tên của cơ sở dữ liệu bạn muốn tạo hoặc truy cập. Ví dụ: use projectdemo

Khi sử dụng lệnh này, nếu database chưa tồn tại, MongoDB sẽ tạo mới khi bạn thêm dữ liệu vào.

2. Xem database đang sử dụng

Để kiểm tra database hiện tại bạn đang làm việc, dùng lệnh: db

Lệnh này sẽ hiển thị tên của database đang được sử dụng.

3. Xem tất cả các database trong hệ thống

Để liệt kê tất cả database có trong hệ thống MongoDB: show dbs

Lưu ý: Lệnh này chỉ hiển thị các database đã chứa ít nhất một collection có dữ liệu. Nếu database chưa có collection nào hoặc chưa có dữ liệu, nó sẽ không hiển thị.

4. Tạo collection mới

Collection là nơi lưu trữ các document (bản ghi). Để tạo collection mới: db.createCollection("tenCollection")

Ví dụ: db.createCollection("users")

5. Thêm dữ liệu vào collection

Để thêm một document vào collection: db.tenCollection.insertOne({ name: "Mai", age: 25 })

Để thêm nhiều documents cùng lúc: db.tenCollection.insertMany([{ name: "Nam", age: 28 }, { name: "Linh", age: 22 }])

6. Lấy tất cả dữ liệu trong collection

Để truy xuất toàn bộ dữ liệu trong một collection: db.collectionName.find()

Trong đó, collectionName là tên collection bạn muốn xem dữ liệu.

Nếu muốn hiển thị kết quả theo dạng dễ nhìn hơn (định dạng JSON đẹp): db.collectionName.find().pretty()

Ví dụ: db.users.find().pretty()

7. Truy vấn có điều kiện trong MongoDB

Để tìm dữ liệu thỏa điều kiện, sử dụng cú pháp: db.collectionName.find(điều_kiện)

Ví dụ: db.users.find({ age: { $gt: 25 } })
=> Trả về tất cả documents có tuổi lớn hơn 25.

Cú pháp của các mệnh đề điều kiện trong MongoDB:

- Bằng (Equality): { key: value }

- Nhỏ hơn (Less Than): { key: { $lt: value } }

- Nhỏ hơn hoặc bằng (Less Than Equals): { key: { $lte: value } }

- Lớn hơn (Greater Than): { key: { $gt: value } }

- Lớn hơn hoặc bằng (Greater Than Equals): { key: { $gte: value } }

- Khác (Not Equals): { key: { $ne: value } }

- Trong danh sách (In): { key: { $in: [value1, value2, ...] } }

- Không thuộc danh sách (Not In): { key: { $nin: [value1, value2, ...] } }

8. Xóa dữ liệu

Để xóa một document đầu tiên thỏa điều kiện: db.collectionName.deleteOne({ điều_kiện })

Để xóa nhiều documents cùng lúc: db.collectionName.deleteMany({ điều_kiện })

9. Cập nhật dữ liệu

Để cập nhật một document đầu tiên thỏa điều kiện: db.collectionName.updateOne({ điều_kiện }, { $set: { trường: giá_trị_mới } })

Để cập nhật nhiều documents: db.collectionName.updateMany({ điều_kiện }, { $set: { trường: giá_trị_mới } })

Ví dụ: db.users.updateOne({ name: "Mai" }, { $set: { age: 30 } })

>>> Xem thêm: Điểm tên 6 nền tảng MongoDB hosting miễn phí tốt nhất hiện nay

Sự khác nhau giữa MongoDB và RDBMS

Chúng ta có thể so sánh trực tiếp NoSQL MongoDB với RDBMS và so sánh các thuật ngữ khác nhau trong hai hệ thống:

RDBMS table là một MongoDB collection, column là field, tuple/ row là document và table join là document được nhúng. Schema điển hình của một cơ sở dữ liệu quan hệ cho thấy số lượng các bảng và mối quan hệ giữa các bảng nhưng MongoDB không tuân theo khái niệm về mối quan hệ.

Hãy xem 9 sự so sánh khác nhau dưới đây để hiểu chính xác cơ sở dữ liệu NoSQL chuyên nghiệp như MongoDB khác với RDBMS như thế nào.

MongoDB

RDBMS

Định hướng tài liệu và CSDL phi quan hệ

CSDL quan hệ

Dựa trên tài liệu

Dựa trên hàng

Dựa trên đường

Dựa trên cột

Dựa trên Collection và cặp Key-Value

Dựa trên bảng

Cung cấp Javascript Client cho truy vấn

Không cung cấp Javascript cho truy vấn

Tương đối dễ thiết lập

Tương đối không dễ thiết lập

Nó không bị ảnh hưởng bởi SQL injection

Nó khá dễ bị tấn công bởi SQL injection

Lý tưởng cho việc lưu trữ dữ liệu phân cấp

Không tốt cho việc lưu trữ dữ liệu phân cấp

Có Dynamic Schema

Chứa Schema được xác định trước 

Nhanh gấp 100 lần 

Tăng quy mô theo chiều dọc RAM

Nó có thể mở rộng theo chiều ngang thông qua Sharding

Tăng quy mô theo chiều dọc RAM

Kết luận

Trên đây là những thông tin chi tiết về chương trình cơ sở dữ liệu MongoDB. Chúng tôi hy vọng bạn có cái nhìn tổng quan về MongoDB. Đồng thời có thể ứng dụng hiệu quả vào máy tính trong những trường hợp cần thiết. Nếu muốn cài đặt MongoDB, hãy liên hệ với nhà cung cấp dịch vụ cho thuê máy chủ của bạn để được hỗ trợ tránh làm mất mát dữ liệu cá nhân/công ty. 

Thông tin liên hệ Nhân Hòa:

+ Tổng đài: 1900 6680

+ Website: https://nhanhoa.com/

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Khuyến mãi Nhân Hòa: https://nhanhoa.com/uu-dai-nhan-hoa.html

Bài viết liên quan
01/07/2025
Bạn đang bắt đầu tìm hiểu về SEO hay là một SEOer dày dặn kinh nghiệm? Dù ở cấp độ nào, chắc hẳn bạn đã từng nghe...
30/06/2025
Hệ thống của bạn đang hoạt động trên Google Cloud? Dữ liệu của bạn có thực sự an toàn? Google Cloud Security không chỉ...
27/06/2025
Công nghệ không ngừng đổi mới, Cloud Deployment đã và đang trở thành chiến lược tất yếu giúp doanh nghiệp nâng tầm hạ...
Kết nối với Nhân Hoà
Công Ty TNHH Phần Mềm Nhân Hòa

Map Tầng 4, Tòa 97–99 Láng Hạ, Phường Đống Đa, Thành phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Công Ty TNHH Phần Mềm Nhân Hòa

Map 927/1 Cách Mạng Tháng 8, Phường Tân Sơn Nhất, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Công Ty TNHH Phần Mềm Nhân Hòa

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Thành Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (028) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
×
Thông báo

Đăng nhập thành công!

ưu đãi Nhân Hòa Ưu đãi