Tổng quan về MongoDB
Tổng hợp kiến thức về MongoDB
Các thành phần ánh xạ giữa MongoDB và RDBMS
Mô hình triển khai MongoDB
Standalone
- 1 máy chủ triển khai read và write database
Replication
- Nhiều server, mỗi server đều cài MongoDB.
- Có 1 master để cập nhật, sửa đổi database
- Khi có thay đổi từ master => cập nhật dữ liệu sang các slave
Sharding
- Dữ liệu chẻ đều để ở nhiều server.
- Trong mỗi shard vẫn có thể config replication để đảm bảo tính sẵn sàng.
- Có thể scale chiều ngang bằng việc thêm Shard (server máy chủ mới)
Triển khai MongoDB
- MongoDB Atlas: Sử dụng như dịch vụ cloud
- MongoDB On-Premise: Cài đặt trên chính server.
Kiến trúc hoạt động MongoDB (Storage Engine)
- Mỗi storage engine có giải thuật xử lí riêng, có ưu nhược điểm riêng
- Chịu trách nhiệm xử lí dữ liệu và lưu dữ liệu trên memory và trên các file vật lý (phía OS)
- Một số loại Storage Engine trong MongoDB:
- MMAP v1
- WiredTiger Storage Engine: Default từ phiên bản 3.2.
- In-memory Storage Engine: Chỉ sử dụng với phiên bản Enterprise
Câu lệnh kiểm tra Storage Engine đang được sử dụng:
WiredTiger Architech Structure
Làm việc với dữ liệu trong MongoDB
- Tạo mới dữ liệu:
insertOne
,insertMany
- Xem toàn bộ dữ liệu:
db.name_collection.find()
- Giới hạn số bản ghi trả về:
db.name_collection.find().limit(number)
- Filter theo điều kiện:
db.name_collection.find(condition query)
- Sắp xếp kết quả với:
sort
- Chỉnh sửa dữ liệu:
updateOne
,updateMany
- Xóa dữ liệu:
deleteOne
,deleteMany
- Drop collection:
drop
Change
name_collection
to your collection name
Tối ưu MongoDB
Kiểm tra thông tin dữ liệu
- Kiểm tra thông tin collection:
- Kiểm tra index trên collection:
- Kiểm tra thông số của collection:
-
Xem chiến lược thực thi của câu lệnh với lệnh:
.explain("executionStats")
-
Tối ưu sử dụng Index:
- Tạo index với lệnh
.createIndex
- Xóa index với lệnh:
.dropIndex
- Tạo index với lệnh