MongoDB lần đầu tiên được phát triển vào năm 2007 bởi Dwight Merriman và Eliot Horowitz khi họ gặp vấn đề về khả năng mở rộng với cơ sở dữ liệu quan hệ trong khi phát triển các ứng dụng web doanh nghiệp tại công ty của họ, được gọi là DoubleClick. Theo một trong những nhà phát triển, tên của nó có nguồn gốc từ từ humongous để hỗ trợ ý tưởng xử lý một lượng lớn dữ liệu.
Cơ sở dữ liệu đã trở thành một dự án mã nguồn mở vào năm 2009 trong khi công ty cung cấp các dịch vụ hỗ trợ thương mại. Nhiều công ty đã sử dụng MongoDB vì các tính năng độc đáo của nó. Một trong những công ty này là báo The New York Times, và họ đã sử dụng cơ sở dữ liệu này để xây dựng một ứng dụng dựa trên web để gửi các bức ảnh. Vào năm 2013, DoubleClick đã chính thức đổi tên thành MongoDB Inc.
Các thành phần MongoDB
Các thành phần MongoDB cốt lõi và cách sử dụng chúng bao gồm:
- Bộ sưu tập - Các đối tác RDBMS của chúng là các bảng. Chúng là một tập hợp các tài liệu MongoDB
- Tài liệu - Đối tác RDBMS của nó là Row. Đây là tập hợp dữ liệu được lưu trữ ở định dạng BSON
- Trường - Đây là một phần tử duy nhất trong tài liệu MongoDB chứa các giá trị dưới dạng trường và cặp giá trị.
Lưu trữ dựa trên tài liệu
Tài liệu là một cấu trúc dữ liệu với các cặp tên-giá trị như JSON và việc ánh xạ bất kỳ Đối tượng tùy chỉnh nào của bất kỳ ngôn ngữ lập trình nào với tài liệu MongoDB rất dễ dàng. Ví dụ:một Sinh viên đối tượng có các thuộc tính như name, studentid, và chủ đề trong đó các môn học là một Danh sách. Tài liệu dành cho Sinh viên trong MongoDB sẽ có dạng như sau:
{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}
Bạn sẽ nhận thấy rằng các tài liệu là đại diện JSON của các đối tượng tùy chỉnh từ đại diện ở trên. Ngoài ra, tránh được quá nhiều JOINS bằng cách lưu dữ liệu dưới dạng Mảng và tài liệu (Nhúng) bên trong tài liệu.
Cập nhật tài liệu trong MongoDB
MongoDB cung cấp một bản cập nhật () lệnh được sử dụng để cập nhật các tài liệu của một bộ sưu tập. Các tham số cơ bản trong lệnh là điều kiện mà tài liệu cần được cập nhật và việc sửa đổi cần được thực hiện. Người dùng có thể thêm tiêu chí vào câu lệnh cập nhật để chỉ cập nhật các tài liệu đã chọn. Ví dụ dưới đây cho thấy cách cập nhật một giá trị trong tài liệu được thực hiện như thế nào:
- Nhập updateOne lệnh.
- Chọn điều kiện được sử dụng để quyết định tài liệu nào được cập nhật. Ví dụ:chúng tôi sẽ cập nhật một tài liệu có tác giả và bài báo.
- Sử dụng bộ lệnh sửa đổi Tên trường, chọn tên trường bạn muốn thay đổi, sau đó nhập giá trị mới như hình dưới đây:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)
Đầu ra:
Lưu ý: đảm bảo chọn đúng cơ sở dữ liệu bằng lệnh “sử dụng”. Ví dụ, tôi đang sử dụng “Fossdb”; do đó, để chọn cơ sở dữ liệu thích hợp, tôi sẽ thực hiện lệnh dưới đây:
use fossdb
Đầu ra:
Kết quả đầu ra sẽ hiển thị rằng một bản ghi phù hợp với điều kiện và do đó giá trị trường liên quan trong tài liệu được sửa đổi.
Để cập nhật hàng loạt tài liệu đồng thời trong MongoDB, người dùng sẽ cần sử dụng nhiều tùy chọn vì theo mặc định, mỗi lần chỉ có một tài liệu được sửa đổi. Đoạn mã dưới đây cho biết cách người dùng có thể cập nhật nhiều tài liệu cùng một lúc:
- Trước tiên, chúng tôi sẽ tìm tài liệu có tác giả là “Abraham” và thay đổi tên tác giả từ “Abraham” thành “Masai”. Sau đó, chúng tôi sẽ phát hành updateMany lệnh.
- Sau đó, chọn điều kiện để quyết định tài liệu nào sẽ được sửa đổi. Như đã đề cập trước đó, chúng tôi sẽ sử dụng tài liệu với tên "Tác giả".
- Chọn tên trường bạn muốn cập nhật, sau đó nhập các giá trị mới của chúng cho phù hợp.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)
Đầu ra:
Sau khi chạy thành công lệnh này, đầu ra cho thấy một bản ghi phù hợp với điều kiện và do đó, trường liên quan đã được sửa đổi.
Tại sao người dùng nên chọn MongoDB
Sau đây là những lý do tại sao người dùng nên bắt đầu sử dụng MongoDB:
Hướng tài liệu
Vì cơ sở dữ liệu này là cơ sở dữ liệu kiểu NoSQL, dữ liệu được lưu trữ trong tài liệu thay vì có dữ liệu ở định dạng kiểu quan hệ. Điều này làm cho cơ sở dữ liệu này rất linh hoạt và có thể thích ứng với các tình huống và yêu cầu trong thế giới thực.
Truy vấn đặc biệt
Tìm kiếm theo trường, truy vấn và tìm kiếm biểu thức chính quy được hỗ trợ trong MongoDB; do đó có thể thực hiện các truy vấn để đưa trở lại các trường cụ thể trong tài liệu.
Lập chỉ mục
Các chỉ mục trong MongoDB được tạo để cải thiện hiệu suất của các tìm kiếm trong cơ sở dữ liệu.
Cân bằng tải
MongoDB sử dụng sharding để chia tỷ lệ theo chiều ngang bằng cách chia nhỏ dữ liệu trên nhiều phiên bản MongoDB.
Nhân rộng
Cơ sở dữ liệu này cung cấp tính khả dụng cao với các tập hợp bản sao. Mỗi tập hợp bản sao bao gồm hai hoặc nhiều cá thể MongoDB. Thành viên tập hợp bản sao có thể hoạt động trong vai trò của bản sao chính hoặc thứ cấp bất kỳ lúc nào. Bản sao chính là máy chủ trung tâm tương tác với máy khách và thực hiện tất cả các thao tác đọc / ghi. Ngược lại, bản sao thứ cấp duy trì một bản sao của bản sao chính bằng cách sử dụng dữ liệu sao chép tích hợp sẵn.
Mô hình hóa dữ liệu trong MongoDB
Từ cuộc thảo luận ở trên, dữ liệu trong Mongo DB có một lược đồ linh hoạt. Các bộ sưu tập của MongoDB không thực thi cấu trúc tài liệu, không giống như cơ sở dữ liệu SQL, trong đó người dùng phải khai báo lược đồ của bảng trước khi chèn dữ liệu. Loại linh hoạt này là điều làm cho MongoDB trở nên mạnh mẽ.
Khi lập mô hình dữ liệu trong MongoDB, người dùng nên ghi nhớ những điều sau:
- Các mẫu truy xuất dữ liệu - trong trường hợp sử dụng nhiều truy vấn, người dùng nên cân nhắc sử dụng các chỉ mục trong mô hình dữ liệu của họ để cải thiện hiệu quả truy vấn.
- Nhu cầu ứng dụng - người dùng nên xem xét nhu cầu kinh doanh của ứng dụng và xem dữ liệu và loại dữ liệu nào cần thiết cho ứng dụng.
- Cơ sở dữ liệu có được sửa đổi thường xuyên không? - người dùng sẽ phải xem xét lại việc sử dụng các chỉ mục hoặc kết hợp sharding nếu được yêu cầu trong thiết kế mô hình dữ liệu của họ để cải thiện hiệu quả của môi trường MongoDB tổng thể của họ.
Kết luận
Bài viết này đã đưa ra một phân tích ngắn gọn về MongoDB, một cơ sở dữ liệu lan truyền trên thị trường hiện nay. Ngoài ra, nó đã giải thích cách cập nhật các tài liệu hiện có trong MongoDB. Chúng tôi hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn về MongoDB. Trong trường hợp có bất kỳ vấn đề gì, hãy liên hệ với chúng tôi qua phần bình luận và chúng tôi sẽ liên hệ lại ngay với bạn.