Hãy để tôi cung cấp cho bạn một cái nhìn tổng quan nhanh về MongoDB.
Tại sao MongoDB lại thú vị?
Làm thế nào là nó hữu ích cho ứng dụng của chúng tôi?
Và một số tính năng nổi bật của MongoDB
trái ngược với cơ sở dữ liệu SQL truyền thống là gì?
Vì vậy, đây sẽ không phải là một toàn bộ hiệp ước hoặc cơ sở dữ liệu.
Tôi cho rằng bạn có đủ kiến thức về cơ sở dữ liệu.
Vì vậy, những gì tôi sẽ giới thiệu những gì MongoDB sẽ được dễ dàng cho bạn để làm theo.
Từ kiến thức trước đây của bạn về cơ sở dữ liệu,
tôi cho rằng bạn đã hiểu rằng cơ sở dữ liệu được sử dụng để lưu trữ dữ liệu có cấu trúc
và cũng cho phép bạn thực hiện
các thao tác khác nhau của dữ liệu bao gồm truy vấn dữ liệu,
chèn bản ghi vào cơ sở dữ liệu,
cập nhật một bản ghi hiện có trong cơ sở dữ liệu hoặc xóa một bản ghi khỏi cơ sở dữ liệu.
Các hoạt động thô điển hình được hỗ trợ trên cơ sở dữ liệu.
Ngôn ngữ truy vấn có cấu trúc hoặc cơ sở dữ liệu dựa trên SQL đã
rất phổ biến trong một thời gian dài như một phương tiện lưu trữ dữ liệu.
MySQL là một ví dụ về cơ sở dữ liệu dựa trên SQL.
Chúng đã rất hiệu quả trong việc lưu trữ
dữ liệu và sau đó giải quyết nhiều nhu cầu của các ứng dụng.
Thật vậy, nhiều trang web đã sử dụng cơ sở dữ liệu SQL làm phụ trợ để lưu trữ dữ liệu cho
rằng tại sao không có cơ sở dữ liệu SQL
quan trọng với các loại ứng dụng mới đang đến trực tuyến.
Có một nhu cầu ngày càng tăng cho các
tính năng mới không phải tất cả trong số đó cơ sở dữ liệu dựa trên SQL có thể giải quyết.
Vì vậy, đây là nơi cơ sở dữ liệu dựa trên NoSQL không chỉ
cơ sở dữ liệu dựa trên SQL đang đạt được rất nhiều cấp,
MongoDB là một ví dụ về điều đó.
Vì vậy, các cơ sở dữ liệu NoSQL được thiết kế để
giải quyết một số thiếu sót của cơ sở dữ liệu dựa trên SQL.
Bản thân cơ sở dữ liệu NoSQL có thể được phân thành bốn loại khác nhau.
Chúng tôi có cơ sở dữ liệu dựa trên tài liệu như MongoDB,
chúng tôi có cơ sở dữ liệu dựa trên giá trị quan trọng đơn giản hơn như Redis,
cơ sở dữ liệu dựa trên cột gia đình như Cassandra và sau đó các cơ sở dữ liệu đồ thị mới hơn như
Neo4J và thực sự có nhiều hơn bây giờ trên thị trường hơn những ví dụ mà tôi đã đưa ra.
Nhưng tất nhiên trong khóa học này,
chúng tôi sẽ tập trung chủ yếu vào cơ sở dữ liệu dựa trên tài liệu, cụ thể là MongoDB.
Vì vậy, tôi sẽ xem xét thêm về MongoDB trong phần còn lại của bài giảng này.
Cơ sở dữ liệu tài liệu, như tên của nó,
được xây dựng xung quanh tài liệu.
Tài liệu là một đơn vị thông tin khép kín và có thể ở nhiều định dạng khác nhau,
JSON là một trong những định dạng phổ biến nhất để lưu trữ tài liệu trong cơ sở dữ liệu tài liệu.
Ví dụ, một tài liệu JSON được hiển thị ở đây và
đây sẽ là một cái gì đó được ban cho trong một cơ sở dữ liệu tài liệu điển hình.
Bản thân tài liệu có thể được tổ chức thành các bộ sưu tập.
Vì vậy, một bộ sưu tập là một nhóm các tài liệu và lần lượt,
cơ sở dữ liệu chính nó có thể được coi là một tập hợp các bộ sưu tập.
Vì vậy, các thuật ngữ này, “Bộ sưu tập tài liệu” và “Cơ sở dữ liệu” sẽ xảy ra
thường xuyên khi chúng ta thảo luận về cơ sở dữ liệu tài liệu và MongoDB nói riêng.
Tại sao cơ sở dữ liệu NoSQL lại quan tâm đến chúng tôi?
Đặc biệt, khả năng mở rộng là một trong
những lý do tại sao cơ sở dữ liệu NoSQL đã tỏa sáng rất tốt.
Bây giờ về khả năng mở rộng,
khi chúng ta nhìn vào hai yêu cầu; tính
khả dụng và tính nhất quán của cơ sở dữ liệu, thông thường,
cơ sở dữ liệu SQL thấy rất khó để đáp ứng cả hai yêu cầu đồng thời.
Vì vậy, có một sự cân bằng giữa tính sẵn sàng và tính nhất quán.
Vì vậy, đây là nơi cơ sở dữ liệu NoSQL đã thành
công hơn rất nhiều trong việc đáp ứng cả hai yêu cầu.
Đây là nơi mà khía cạnh thứ ba được đánh dấu ở đây,
dung sai phân vùng, cũng có hiệu lực.
Bây giờ phân vùng một cơ sở dữ liệu SQL và sau đó phân phối nó không phải là đơn giản.
Trong khi đó, một cơ sở dữ liệu NoSQL có nhiều
khả năng hơn để được chia nhỏ và sau đó phân phối trên nhiều máy chủ.
Khía cạnh thứ hai của lý do tại sao cơ sở dữ liệu NoSQL đã được phổ biến là dễ triển khai.
Khi bạn sử dụng một cơ sở dữ liệu SQL,
cần phải kết hợp các bản ghi trong cơ sở dữ liệu SQL của bạn trở
lại các đối tượng trong ngôn ngữ mẹ đẻ của bạn như Java hoặc Javascript và vân vân.
Vì vậy cần phải lập bản đồ quan hệ đối tượng và đây là
nơi mà một cổng trung gian cần phải điền vào yêu cầu này.
Với một cơ sở dữ liệu NoSQL giống như một cơ sở dữ liệu dựa trên tài liệu lưu trữ dữ liệu dưới dạng JSON,
việc ánh xạ trở nên khá thẳng về phía trước và đó là một trong những lý do tại sao
cơ sở dữ liệu NoSQL đã rất phổ biến trong khu vực phát triển web.
Đến với MongoDB nói riêng,
MongoDB là một cơ sở dữ liệu tài liệu.
Bản thân máy chủ có thể hỗ trợ nhiều cơ sở dữ liệu.
Một cơ sở dữ liệu nói riêng là một tập hợp các bộ sưu tập
và bộ sưu tập chính nó như chúng ta đã thảo luận trước đó là một tập hợp các tài liệu.
Vì vậy, tài liệu trở thành đơn vị thông tin trong trường hợp của MongoDB.
Các tài liệu trong MongoDB không là gì ngoài một tài liệu JSON.
Trong thực tế, MongoDB lưu trữ tài liệu dưới dạng nhỏ gọn hơn được gọi là định dạng BSON.
Chúng ta sẽ nói về điều đó trong slide tiếp theo.
Trong khi MongoDB là một cơ sở dữ liệu dựa trên tài liệu,
nó lưu trữ các tài liệu JSON dưới dạng nhỏ gọn
được gọi là định dạng BSON hoặc định dạng JSON nhị phân.
Bây giờ điều này hỗ trợ tiền tố độ dài trên mỗi giá trị để
bỏ qua một trường trở nên dễ dàng hơn nhiều.
Như bạn thấy, MongoDB hỗ trợ các tính năng bổ sung hơn là một cơ sở dữ liệu tài liệu đơn giản.
Thông tin về loại giá trị trường cũng được lưu trữ.
Và ngoài ra, trong tài liệu JSON, các
loại nguyên thủy bổ sung được lưu trữ hữu ích
khi bạn đang thực hiện các thao tác trên cơ sở dữ liệu.
Những thứ như định dạng ngày UTC,
nó cũng hỗ trợ nhị phân thô và cũng sử dụng định dạng ID đối tượng
để lưu trữ ID của từng tài liệu trong cơ sở dữ liệu nếu bạn chọn.
Hãy nói về điều đó trong một chút chi tiết hơn trong slide tiếp theo.
Hãy nói về ID đối tượng MongoDB.
Mỗi tài liệu trong cơ sở dữ liệu MongoDB phải có
một trường ID, một trường ID gạch dưới
, hoạt động như khóa chính cho tài liệu.
Và trường này là duy nhất cho mỗi tài liệu.
Trường ID chính nó có thể được sử dụng trong
nhiều định dạng và một định dạng cụ thể mà MongoDB tự động
gán trong trường hợp bạn không chọn sử dụng trường ID của riêng bạn
là ID đối tượng được tạo ra theo mặc định bởi MongoDB.
Vì vậy, đối tượng ID chính nó là
một phần có cấu trúc của thông tin nhưng được lưu trữ dưới dạng ID của tài liệu.
Ví dụ: trường ID được tự động
gán bởi Mongo trong trường hợp bạn không chỉ định một trường ID,
chứa ID đối tượng dưới dạng một chuỗi dài.
Bây giờ chuỗi này có một định dạng cụ thể
cho phép nó lưu trữ một số mẩu thông tin trong ID đối tượng.
Hãy nhìn vào cấu trúc của đối tượng ID chính nó trong trang chiếu tiếp theo.
Như tôi đã đề cập, trường ID đối tượng chính nó là
một trường 12 byte mà lưu trữ thông tin trong một định dạng cụ thể.
Bốn byte đầu tiên bao gồm một dấu thời gian, dấu
thời gian Unix điển hình ở độ phân giải của một giây.
Vì vậy, điều này được nói trong bốn byte đầu tiên.
Sau đó, ba byte tiếp theo đối với ID máy,
máy mà trên đó máy chủ Mongo đang chạy
và hai byte tiếp theo là ID quá trình, quá
trình Mongo cụ thể đã tạo ra
tài liệu này và sau đó trường cuối cùng là một gia tăng.
Bây giờ như bạn đã hiểu,
trường dấu thời gian chính nó là ở độ phân giải của một giây.
Vì vậy, nếu bạn có nhiều tài liệu được lưu trữ trong cùng một giây,
sau đó trường tăng sẽ phân biệt giữa các tài liệu.
Họ tăng trường là một trường tự tăng.
Vì vậy, mỗi tài liệu mới được tạo ra trong vòng một giây sẽ nhận được một giá trị gia tăng mới.
Vì vậy, kết hợp cùng với hai,
bạn có thể dễ dàng phân biệt giữa các
tài liệu khác nhau được lưu trữ trong cơ sở dữ liệu tài liệu của bạn.
Vì vậy, điều này cho phép bạn rõ ràng cung cấp một ID duy nhất cho mỗi tài liệu.
Không chỉ vậy, với một ID,
bạn có thể dễ dàng truy xuất thông tin từ ID này.
Vì vậy, ví dụ, bạn có thể có được giữ của ObjectID và sau đó gọi
phương pháp GetTimestamp của đối tượng ID và
điều này sẽ trả về dấu thời gian trong định dạng ngày ISO.
Vì vậy, điều đó sẽ cho phép bạn xác định khi nào tài liệu này đã được tạo ra.
Với sự hiểu biết nhanh chóng này về MongoDB, chúng ta
hãy tiến hành bài tập nơi chúng ta sẽ cài đặt MongoDB đầu tiên trên máy tính của chúng tôi
và sau đó tương tác với cơ sở dữ liệu MongoDB bằng cách sử dụng gợn sóng Mongo,
đọc đánh giá vòng lặp in mà Mongo hỗ trợ.
Bây giờ sau đó, chúng ta sẽ xem xét cách chúng ta có thể truy cập
máy chủ Mongo từ bên trong ứng dụng nút của chúng tôi trong bài học tiếp theo.