MongoDB là một cơ sở dữ liệu NoSQL mã nguồn mở, có nghĩa là, không giống như cơ sở dữ liệu quan hệ, nó không chấp nhận các giá trị đầu vào ở định dạng bảng. Dữ liệu được lưu trữ trong bộ sưu tập và tài liệu vì MongoDB là cơ sở dữ liệu hướng tài liệu. Các hàng trong bảng SQL đã được thay thế bằng các tài liệu trong MongoDB.
Bài viết này giả định rằng bạn đã cài đặt máy chủ MongoDB trên máy tính của mình và kết nối một trình bao với máy chủ. Nếu bạn đã làm như vậy, chúng ta có thể khám phá một vài tính năng của MongoDB nhưng trước tiên, một vài thuật ngữ:Nếu chưa, bạn có thể xem bài viết về cách cài đặt MongoDB trên Ubuntu.
- Cơ sở dữ liệu - đây là một vùng chứa vật lý chứa một tập hợp các bộ sưu tập. Nó có thể chứa không hoặc nhiều bộ sưu tập. Không có bất kỳ giới hạn nào về số lượng cơ sở dữ liệu có thể được lưu trữ trong một phiên bản máy chủ duy nhất, vì nó có thể lưu trữ nhiều cơ sở dữ liệu. Giới hạn duy nhất của nó là không gian địa chỉ bộ nhớ ảo mà hệ điều hành bên dưới có thể cấp phát.
- Bộ sưu tập - một tập hợp các tài liệu MongoDB tương tự như “bảng” trong hệ thống cơ sở dữ liệu quan hệ. Một bộ sưu tập chứa các tài liệu có mục đích tương tự hoặc liên quan. Bộ sưu tập không có giản đồ, nghĩa là các tài liệu trong cùng một bộ sưu tập có thể có các trường khác nhau.
- Tài liệu - đây là đơn vị cơ bản để lưu trữ dữ liệu trong MongoDB. Chúng tương tự như ROW trong các hệ thống cơ sở dữ liệu quan hệ truyền thống. Các tài liệu được sắp xếp theo thứ tự của các cặp khóa-giá trị, có nghĩa là có một giá trị được liên kết cho mọi khóa. Chúng thường được gọi là “đồ vật”. Chúng được biểu diễn ở định dạng giống JSON (cặp khóa-giá trị). Dữ liệu được lưu trữ và truy vấn dưới dạng biểu diễn nhị phân của dữ liệu giống JSON được gọi là BSON. Dưới đây là một ví dụ về định dạng này:
{
Student_enroll: “foss123”,
grade: ‘B’
}
- Trường - đây là cột tương đương trong cơ sở dữ liệu quan hệ. Nó được lưu trữ cùng với giá trị của nó trong các cặp khóa-giá trị. Tài liệu trong bộ sưu tập có thể có 0 hoặc nhiều trường.
- _id - đây là trường bắt buộc trong mọi tài liệu MongoDB. Nếu người dùng tạo tài liệu không có trường _id, MongoDB sẽ tự động tạo trường. _ID được sử dụng để đại diện cho các tài liệu duy nhất trong một bộ sưu tập. Chúng hoạt động như khóa chính của tài liệu.
Tạo cơ sở dữ liệu MongoDB
Việc tạo cơ sở dữ liệu trong MongoDB diễn ra ngầm khi bạn cố gắng sử dụng cơ sở dữ liệu. Để tạo cơ sở dữ liệu, hãy nhập dòng sau vào shell mongo;
> use fossDB
Đầu ra:
Lưu ý: Để mở Mongo shell, hãy chạy lệnh bên dưới:
mongo
Trước tiên, MongoDB sẽ kiểm tra để xác nhận xem có cơ sở dữ liệu tên là FossDB hay không. Nếu không, nó sẽ tạo một cái mới để sử dụng. Sau đó, trình bao Mongo chuyển sang FossDB. Điều này có nghĩa là mọi bộ sưu tập và tài liệu được tạo, cập nhật hoặc đọc sẽ từ cơ sở dữ liệu này trừ khi được chỉ định khác.
Để in cơ sở dữ liệu bạn đang ở ngay bây giờ, bạn sử dụng lệnh > db . Để liệt kê tất cả các cơ sở dữ liệu có sẵn và được tạo, bạn sử dụng lệnh > show . Ví dụ về các lệnh đang sử dụng này được hiển thị bên dưới;
>db
fossDB
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
Đầu ra:
Lưu ý: Không can thiệp vào cơ sở dữ liệu quản trị và cấu hình vì Mongo sử dụng chúng cho mục đích quản trị.
Tạo bộ sưu tập MongoDB
Để tạo bộ sưu tập, trước tiên, hãy đảm bảo rằng bạn đang ở trong cơ sở dữ liệu chính xác mà bạn định tạo bộ sưu tập trong đó. Có hai cách để tạo bộ sưu tập đó là:
1. Tạo bộ sưu tập một cách rõ ràng
Sử dụng lệnh bên dưới:
>db.createCollection("Collection1");
{"ok":1}
Đầu ra:
Lệnh này sau đó sẽ tạo một bộ sưu tập có tên là Collection1
2. Chèn tài liệu vào bộ sưu tập mới
Bạn có thể nhanh chóng thử chèn một tài liệu vào một bộ sưu tập không tồn tại. Thao tác này sẽ nhắc Mongo tạo một bộ sưu tập mới cho bạn. Xin lưu ý rằng mặc dù điều này thuận tiện về mặt lập trình tạo bộ sưu tập, nhưng nếu bạn đang sử dụng Mongo shell và mắc lỗi đánh máy ở đâu đó trong khi chèn tài liệu, tài liệu có thể kết thúc trong một cơ sở dữ liệu mới mà bạn không biết.
Cú pháp để tạo một bộ sưu tập mới là;
db.collection_name.insert(document);
Để tạo một bộ sưu tập Collection2 trong cơ sở dữ liệu FossDB, hãy sử dụng lệnh sau:
> db.Collection2.insert({name: "Alex",key: "value",age: 20});
Đầu ra:
Trong ví dụ này, phần tài liệu được đại diện bởi chuỗi JSON sau:
{
name: "Alex",
key: "value"
age: 20
}
Đây là các cặp khóa-giá trị điển hình của một chuỗi JSON. “Tên” là khóa và “Alex” là giá trị. Một người dùng có thể có nhiều tài liệu trong bộ sưu tập này với tên khóa và một giá trị khác, chẳng hạn như Max.
Sử dụng lệnh bên dưới để liệt kê tất cả các bộ sưu tập bên trong cơ sở dữ liệu:
> show collections
Collection1
Collection2
Đầu ra:
Từ đầu ra, bạn sẽ nhận thấy rằng cả hai bộ sưu tập đã được tạo. Bạn tự tin rằng mình có thể thêm một tài liệu mới vào một bộ sưu tập.
Hiển thị các bộ sưu tập
Nếu bạn không để ý, chúng ta đã sử dụng từ khóa show khá nhiều khi thảo luận về các lệnh khác. Để tóm tắt lại điều này, lệnh để hiển thị các bộ sưu tập và cơ sở dữ liệu là:
>show collections
>show dbs
Đầu ra:
Cùng với lệnh db, các lệnh này được sử dụng để in cơ sở dữ liệu hiện tại và khá tiện dụng khi tương tác với Mongo shell.
Bỏ bộ sưu tập và cơ sở dữ liệu MongoDB
Lệnh drop là một từ khóa mà chúng tôi chưa đề cập đến trong bài viết này. Đây là lệnh được sử dụng để xóa bộ sưu tập hoặc toàn bộ cơ sở dữ liệu khỏi máy chủ Mongo của người dùng. Để loại bỏ, cú pháp sau sẽ hướng dẫn bạn qua quy trình.
1. Bỏ bộ sưu tập
Chúng tôi sẽ loại bỏ bộ sưu tập "Collection2" mà chúng tôi đã tạo trước đó. Điều này được thực hiện bằng cách sử dụng lệnh dưới đây:
>db.Collection2.drop()
Đầu ra:
Để xác minh rằng bộ sưu tập đã bị xóa, bạn có thể sử dụng lệnh hiển thị bộ sưu tập để liệt kê các bộ sưu tập còn lại. Bạn sẽ nhận thấy rằng sẽ thiếu một bộ sưu tập trong danh sách.
2. Bỏ cơ sở dữ liệu
Trước khi chạy lệnh thả cơ sở dữ liệu, bạn nên kiểm tra xem bạn có đang ở trong cơ sở dữ liệu chính xác hay không, nếu không, bạn có thể thoát khỏi cơ sở dữ liệu sai và cuối cùng mất dữ liệu có giá trị mà bạn không có ý định xóa. Trong ví dụ này, chúng ta sẽ loại bỏ cơ sở dữ liệu FossDB mà chúng ta đã tạo trước đó. Hãy đảm bảo rằng chúng ta đang ở trong cơ sở dữ liệu chính xác bằng cách sử dụng lệnh bên dưới:
>db
fossDB
Đầu ra:
Sau đó, hãy thả cơ sở dữ liệu bằng cách sử dụng lệnh bên dưới:
>db.dropDatabase();
Đầu ra:
Dưới đây, chúng tôi sẽ trình bày các thuật ngữ SQL khác nhau và các thuật ngữ MongoDB tương ứng của chúng;
Thuật ngữ SQL | Điều khoản MongoDB |
---|---|
Cơ sở dữ liệu | Cơ sở dữ liệu |
Bảng | Bộ sưu tập |
Chỉ mục | Chỉ mục |
Hàng | Tài liệu / Tài liệu BSON |
Cột | Trường |
Bảng tham gia | Tài liệu được nhúng và liên kết |
Khóa chính - trong SQL, điều này chỉ định bất kỳ kết hợp cột hoặc cột duy nhất nào | Khóa chính - khóa này tự động được đặt thành trường _id trong MongoDB |
Kết luận
MongoDB đã trở nên phổ biến rộng rãi trong thế giới của các nhà phát triển nhờ cách đại diện giống JSON, khả năng mở rộng, dễ dàng và năng động để tạo tài liệu. Bài viết này đã thảo luận về ba lệnh được sử dụng trong MongoDB shell. Chúng tôi hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về các lệnh này. Nếu bạn đang tìm kiếm một cơ sở dữ liệu được sử dụng trong một dự án để nâng cao dữ liệu, MongoDB là một lựa chọn tốt mà bạn có thể muốn xem xét.