Khi bạn tạo cơ sở dữ liệu trong MongoDB, cơ sở dữ liệu của bạn về cơ bản là một vùng chứa trống mà bạn có thể thêm một hoặc nhiều bộ sưu tập vào.
Một tập hợp tương tự như một bảng trong cơ sở dữ liệu quan hệ.
Trong cơ sở dữ liệu quan hệ, bạn có thể sử dụng CREATE TABLE
để tạo từng bảng mà bạn muốn trong cơ sở dữ liệu.
Nhưng MongoDB không phải là một cơ sở dữ liệu quan hệ và nó lưu trữ dữ liệu của mình dưới dạng tài liệu. Mỗi tài liệu được lưu trữ trong một bộ sưu tập.
Bài viết này hướng dẫn bạn cách tạo một bộ sưu tập trong MongoDB.
Hai lựa chọn
Bạn có hai tùy chọn để tạo bộ sưu tập trong MongoDB:
- Ngụ ý
- Rõ ràng
Dưới đây là một ví dụ về từng cái.
Tạo Bộ sưu tập - Ngầm nhiên
Bạn có thể tạo một bộ sưu tập hoàn toàn bằng cách thêm một tài liệu vào một bộ sưu tập không tồn tại. Khi bạn làm điều này, bộ sưu tập sẽ được tạo nếu nó chưa tồn tại.
Dưới đây là một ví dụ về việc tạo tập hợp một cách hoàn toàn:
db.pets.insert({ name: "Fetch" })
Điều đó tạo ra một bộ sưu tập có tên là pets
và chèn một tài liệu vào đó.
Trên thực tế, nó chỉ tạo bộ sưu tập nếu nó chưa tồn tại. Nếu nó đã tồn tại, thì nó chỉ cần chèn tài liệu vào bộ sưu tập hiện có của tên đó.
Về cơ bản, cú pháp như sau:
db.<collection>.insert()
Ở đâu <collection>
là tên của bộ sưu tập.
Tạo Bộ sưu tập - Rõ ràng
Bạn cũng có thể tạo bộ sưu tập một cách rõ ràng với db.createCollection()
phương pháp. Phương pháp này cho phép bạn chỉ định các tùy chọn khác nhau, chẳng hạn như đặt kích thước tối đa hoặc các quy tắc xác thực tài liệu.
Đây là loại tương tự với CREATE TABLE
câu lệnh trong SQL. Phải nói rằng, MongoDB không yêu cầu bạn chỉ định cột, kiểu dữ liệu, v.v. giống như bạn cần chỉ định với CREATE TABLE
khi sử dụng cơ sở dữ liệu quan hệ.
Dưới đây là một ví dụ về việc sử dụng db.createCollection()
phương pháp để tạo một bộ sưu tập:
db.createCollection("employees")
Kết quả:
{ "ok" : 1 }
Trong ví dụ này, tôi không chỉ định bất kỳ tùy chọn nào. Do đó, không có lợi ích thực sự nào của việc tạo ra nó giống như những câu này, việc tạo ra nó một cách ngầm (như trong ví dụ trước).
Tuy nhiên, nếu bạn muốn chỉ định các tùy chọn cho bộ sưu tập của mình, thì việc tạo nó một cách rõ ràng là cách nên làm.
Dưới đây là ví dụ về việc chỉ định một số tùy chọn khi tạo bộ sưu tập:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
Kết quả:
{ "ok" : 1 }
Dưới đây là giải thích về các tùy chọn mà tôi đã cung cấp trong ví dụ này:
-
capped
đối số cho phép bạn chỉ định có nên giới hạn kích thước của bộ sưu tập hay không (tức là không được phép phát triển vượt quá một kích thước nhất định). Nếu bạn chỉ địnhtrue
, bạn cũng phải đặt kích thước tối đa trongsize
lĩnh vực này. - Kích thước
size
đối số đặt kích thước tối đa tính bằng byte cho bộ sưu tập có giới hạn. Khi bộ sưu tập được giới hạn đạt đến kích thước tối đa, MongoDB sẽ xóa các tài liệu cũ hơn để tạo không gian cho các tài liệu mới. Kích thướcsize
trường này là bắt buộc đối với các bộ sưu tập có giới hạn và bị bỏ qua đối với các bộ sưu tập khác. -
max
đối số cho phép bạn chỉ định số lượng tài liệu tối đa được phép trong bộ sưu tập có giới hạn. Nếu bộ sưu tập có giới hạn đạt đến kích thướcsize
giới hạn trước khi đạt đến số lượng tài liệu tối đa, MongoDB sẽ xóa các tài liệu cũ. Do đó, hãy đảm bảo rằngsize
đối số đủ để chứa số lượng tài liệu được chỉ định vớimax
tranh luận.
Đây là ba trong số các tùy chọn khác nhau mà bạn có thể chỉ định với db.createCollection()
phương pháp.
Cú pháp và các chi tiết khác
Cú pháp đầy đủ (tính đến thời điểm viết bài này) trông như thế này:
db.createCollection( <name>,
{
capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,
writeConcern: <document>
}
)
Xem db.createCollection()
từ tài liệu MongoDB chính thức để có giải thích chi tiết về từng tùy chọn.