Các hoạt động tổng hợp trong MongoDB xử lý các bản ghi dữ liệu và trả về kết quả tính toán. Các hoạt động tổng hợp nhóm các giá trị từ nhiều tài liệu và có thể thực hiện các thao tác khác nhau trên dữ liệu nhóm để trả về một kết quả duy nhất. MongoDB cung cấp ba cách thực hiện hoạt động tổng hợp: Pipeline, Map-Reduce và các phương pháp tổng hợp đơn lẻ.
I. Các thao tác CRUD cơ bản
Các thao tác CRUD trong MongoDB là các thao tác đọc và ghi dữ liệu vào tài liệu (document).
Thao tác Create (Tạo)
MongoDB cung cấp các thao tác sau để chèn tài liệu vào một bộ sưu tập (collection):
db.collection.insertOne()
: Chèn một tài liệu vào bộ sưu tập.db.collection.insertMany()
: Chèn nhiều tài liệu vào bộ sưu tập.
Giới thiệu
MongoDB là một cơ sở dữ liệu dựa trên hệ thống lưu trữ tệp phân tán. Được viết bằng ngôn ngữ C++. Mục tiêu là cung cấp một giải pháp lưu trữ dữ liệu có khả năng mở rộng và hiệu suất cao cho các ứng dụng web.
MongoDB lưu trữ dữ liệu dưới dạng tài liệu, cấu trúc dữ liệu bao gồm các cặp khóa-giá trị (key-value). Tài liệu trong MongoDB tương tự như đối tượng JSON. Giá trị của trường có thể chứa các tài liệu khác, mảng và mảng tài liệu.
Mô hình quan hệ
Mô hình nhúng tài liệu một một
Mô hình nhúng tài liệu một-một - Mô hình nhúng tài liệu
// patron document
{
_id: "joe",
name: "Joe Bookreader"
}
// address document
{
patron_id: "joe", // reference to patron document
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: "12345"
}
Mô hình dữ liệu của MongoDB là một mô hình linh hoạt, trong khi cơ sở dữ liệu quan hệ yêu cầu bạn định nghĩa cấu trúc mô hình bảng trước khi chèn dữ liệu. Tuy nhiên, trong MongoDB, tài liệu không giới hạn cấu trúc. Điều này giúp dễ dàng ánh xạ giữa đối tượng và tài liệu cơ sở dữ liệu. Ngay cả khi có sự thay đổi lớn giữa các bản ghi dữ liệu, mỗi tài liệu vẫn có thể ánh xạ tốt vào các bản ghi khác nhau. Tuy nhiên, trong thực tế, các tài liệu trong cùng một bộ sưu tập thường có cấu trúc tương tự nhau.
Giới thiệu về Index trong MongoDB
Tác dụng của Index
MongoDB định nghĩa các chỉ mục trên cấp dữ liệu của collection.
Chỉ mục thường có thể cải thiện đáng kể hiệu suất của truy vấn. Nếu không có chỉ mục, MongoDB sẽ phải quét qua từng tài liệu trong collection và chọn ra những bản ghi phù hợp với điều kiện truy vấn.
Cài đặt MongoDB
Windows
(1) Tải xuống và giải nén
Truy cập vào trang web chính thức để tải xuống MongoDB và chọn phiên bản phù hợp tại: Download MongoDB Community Server | MongoDB
MongoDB là một cơ sở dữ liệu phân tán dựa trên tài liệu, được viết bằng ngôn ngữ C++. Nó nhằm mục đích cung cấp một giải pháp lưu trữ dữ liệu có hiệu suất cao và có khả năng mở rộng cho các ứng dụng web.
MongoDB là một sản phẩm nằm giữa cơ sở dữ liệu quan hệ và cơ sở dữ liệu phi quan hệ. Nó là cơ sở dữ liệu phi quan hệ có tính năng phong phú nhất và giống nhất với cơ sở dữ liệu quan hệ. Nó hỗ trợ cấu trúc dữ liệu rất linh hoạt, sử dụng định dạng bson tương tự như json, do đó có thể lưu trữ các loại dữ liệu phức tạp.
Điểm đặc biệt lớn nhất của MongoDB là ngôn ngữ truy vấn mạnh mẽ mà nó hỗ trợ. Cú pháp của nó tương tự như ngôn ngữ truy vấn hướng đối tượng, gần như có thể thực hiện hầu hết các chức năng truy vấn của cơ sở dữ liệu quan hệ trên một bảng duy nhất, và còn hỗ trợ tạo chỉ mục cho dữ liệu.
Sao lưu có thể cung cấp tính sẵn có dự phòng và tăng cường khả năng sẵn có của dữ liệu. Sử dụng nhiều bản sao dữ liệu trên các máy chủ cơ sở dữ liệu khác nhau có thể cung cấp khả năng chống lỗi trong trường hợp một máy chủ cơ sở dữ liệu bị sự cố và dữ liệu bị mất.
Trong một số trường hợp, sao lưu cũng có thể cung cấp khả năng xử lý đọc lớn hơn. Vì khách hàng có thể gửi các hoạt động đọc đến các máy chủ khác nhau. Việc duy trì các bản sao dữ liệu trên các trung tâm dữ liệu khác nhau cũng có thể cải thiện tính cục bộ của dữ liệu và khả năng sẵn có của ứng dụng phân tán. Bạn cũng có thể duy trì các bản sao khác nhau cho mục đích đặc biệt như phục hồi sau thảm họa, báo cáo hoặc sao lưu.
Giới thiệu về cụm phân đoạn
Khi MongoDB cần lưu trữ dữ liệu lớn, một nút đơn không đủ để lưu trữ toàn bộ dữ liệu và có thể không cung cấp được hiệu suất đáng hài lòng. Do đó, chúng ta có thể sử dụng cơ chế phân đoạn của MongoDB để hỗ trợ mở rộng theo chiều ngang.