MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tạo Bộ sưu tập trong MongoDB

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ỉ định true , bạn cũng phải đặt kích thước tối đa trong size 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ước size 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ước size 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ằng size đối số đủ để chứa số lượng tài liệu được chỉ định với max 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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật các tài liệu con lồng nhau trong MongoDB với arrayFilters

  2. mongo sao chép từ bộ sưu tập này sang bộ sưu tập khác (trên cùng một db)

  3. Tổng quan về quản lý người dùng MongoDB

  4. Làm việc với các ký tự đặc biệt trong bộ sưu tập Mongo

  5. rmongodb:sử dụng $ hoặc trong truy vấn