Làm cách nào để tạo lược đồ bộ sưu tập trong MongoDB?

Các bộ sưu tập giống như các bảng trong hệ thống cơ sở dữ liệu NoSQL như MongoDB. Các bản ghi dữ liệu là các tài liệu BSON được lưu trữ trong các bộ sưu tập bên trong cơ sở dữ liệu. BSON là viết tắt của JSON nhị phân. Bộ sưu tập lưu trữ tài liệu

Tài liệu là đơn vị dữ liệu được lưu trữ trong các bộ sưu tập. Các bộ sưu tập có thể lưu trữ tài liệu có cấu trúc không giống nhau vì MongoDB là DBMS không có lược đồ

{
    “name” : “John”,
    “age” : 22,
    “email” : “[email protected]”
}

Ví dụ về bộ sưu tập

Tên bộ sưu tập phải bắt đầu bằng _ (gạch dưới) hoặc chữ cái. Tên bộ sưu tập có thể chứa một số nhưng không có trong khoảng trắng đầu tiên. Tên bộ sưu tập không được chứa ký hiệu “$”. Độ dài tối đa cho một bộ sưu tập là 128 ký tự

Nếu bạn muốn trau dồi nghề nghiệp của mình và trở thành một chuyên gia về MongoDB, hãy truy cập Mindmajix - một nền tảng đào tạo trực tuyến toàn cầu. "Đào tạo MongoDB" Khóa học này sẽ giúp bạn đạt được thành tích xuất sắc trong lĩnh vực này.  

MongoDB tạo các bộ sưu tập khi lần đầu tiên chúng tôi lưu trữ dữ liệu trong bộ sưu tập

Làm cách nào để tạo lược đồ bộ sưu tập trong MongoDB?

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

Phương pháp db.createCollection() được sử dụng để tạo một bộ sưu tập một cách rõ ràng. Bộ sưu tập không cần lược đồ

db.createCollection() phương thức nhận các đối số sau

cappedbooleanTùy chọn. Để tạo một bộ sưu tập giới hạn. Nếu người dùng phải đặt kích thước tối đa trong trường kích thước. autoIndexIdbooleanĐược sử dụng để tự động tạo chỉ mục trên trường _id. Không dùng nữa từ phiên bản 3. 2. kích thướcsốTùy chọn. Chỉ định kích thước tối đa tính bằng byte cho bộ sưu tập được giới hạn. số tối đaTùy chọn. Số lượng tài liệu tối đa được phép trong bộ sưu tập giới hạn. usePowerOf2SizesbooleanOptionalnoPaddingbooleanOptionalstorageEnginedocumentOptionalvalidatordocumentOptional. Cho phép người dùng chỉ định các quy tắc hoặc biểu thức xác thực cho bộ sưu tập. xác thựcLevelstringTùy chọn. Xác định mức độ nghiêm ngặt của MongoDB áp dụng các quy tắc xác thực cho các tài liệu hiện có trong quá trình cập nhật. xác thựcChuỗi hành độngTùy chọn. Xác định xem có lỗi trên các tài liệu không hợp lệ hay chỉ cảnh báo về các vi phạm nhưng cho phép các tài liệu không hợp lệ được chèn vào. indexOtionDefaultsdocumentTùy chọn. Cho phép người dùng chỉ định cấu hình mặc định cho các chỉ mục khi tạo bộ sưu tập. viewOnstringTên của bộ sưu tập nguồn hoặc dạng xem để tạo dạng xem. pipearrayMột mảng bao gồm giai đoạn đường ống tổng hợp. db. createView tạo chế độ xem bằng cách áp dụng đường ống đã chỉ định cho bộ sưu tập hoặc chế độ xem viewOn. collationdocumentChỉ định đối chiếu mặc định cho bộ sưu tập

Tạo bộ sưu tập bằng Javascript

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
 if (err) throw err;
 db.createCollection("customers", function(err, res) {
   if (err) throw err;
   console.log("Collection created!");
   db.close();
 });
});

Liệt kê tất cả các bộ sưu tập

Bạn có thể liệt kê tất cả các bộ sưu tập trong cơ sở dữ liệu bằng lệnh sau

  • db. getCollectionNames() – Vỏ JS
  • db. listCollections() – Nút JS
  • hiển thị bộ sưu tập –Mongo Shell

Thanh toán các câu hỏi phỏng vấn MongoDB

Bộ sưu tập giới hạn

MongoDB có thể áp dụng giới hạn kích thước cho bộ sưu tập. Những bộ sưu tập này được gọi là một bộ sưu tập giới hạn. Các bộ sưu tập giới hạn được triển khai bằng cách sử dụng hàng đợi vòng tròn và được sử dụng cho các hoạt động có thông lượng cao. Khi đạt đến giới hạn kích thước, mongoDB sẽ ghi đè lên các tài liệu cũ hơn để tạo khoảng trống cho các tài liệu mới mà không cần sử dụng rõ ràng bất kỳ lệnh nào

Các bộ sưu tập được giới hạn phù hợp để lưu trữ một lượng lớn dữ liệu cần được làm mới định kỳ như dữ liệu nhật ký và dữ liệu bộ đệm. Tài liệu lưu trữ bộ sưu tập được giới hạn theo thứ tự lưu trữ đĩa do đó sử dụng một số hạn chế. Nếu kích thước tài liệu tăng lên khi cập nhật thì MongoDB sẽ không cập nhật nó

Không thể chia sẻ các bộ sưu tập đã giới hạn. Tài liệu từ bộ sưu tập giới hạn không thể bị xóa và phải sử dụng lệnh { emptycapped: nameOfCollection } để làm trống bộ sưu tập giới hạn

Thanh toán Hướng dẫn MongoDB

Tạo bộ sưu tập giới hạn

Để tạo db bộ sưu tập giới hạn. phương thức createCollection() được sử dụng với tùy chọn tài liệu được đặt giới hạn thành true và kích thước phải được xác định theo byte

Trong những năm gần đây, MongoDB đã giữ vị trí hàng đầu trong số các cơ sở dữ liệu NoSQL. Thuật ngữ NoSQL có nghĩa là không quan hệ. Mongo là một Cơ sở dữ liệu NoSQL, định hướng tài liệu mã nguồn mở cho phép người dùng truy vấn dữ liệu mà không cần phải biết SQL. Bạn có thể đọc thêm về MongoDB tại đây

MongoDB lưu trữ dữ liệu dưới dạng bộ sưu tập. Trong blog này, chúng ta sẽ tìm hiểu cách tạo một bộ sưu tập trong MongoDB

điều kiện tiên quyết

Để theo dõi blog này, bạn phải cài đặt phiên bản MongoDB mới nhất trong máy của mình. Bạn có thể tải xuống MongoDB cho hệ điều hành của mình từ liên kết này

Hãy bắt đầu bằng cách hiểu thuật ngữ tập hợp

Bộ sưu tập trong MongoDB là gì?

Chúng ta đều biết rằng MongoDB lưu trữ dữ liệu dưới dạng tài liệu. Tất cả các tài liệu tương tự được lưu trữ trong một bộ sưu tập. Nó giống như Bảng trong cơ sở dữ liệu SQL hoặc bất kỳ Cơ sở dữ liệu quan hệ nào

Một ví dụ về một bộ sưu tập được hiển thị dưới đây

How to Create a Collection in MongoDB

Nguồn. trang web mongodb

Mỗi đối tượng trong MongoDB được gọi là một tài liệu. Tất cả các đối tượng cùng nhau tạo ra một bộ sưu tập

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

Làm cách nào để tạo bộ sưu tập trong MongoDB?

Có một số phương pháp để tạo một bộ sưu tập trong MongoDB

  1. Phương thức createCollection()
  2. Tạo Bộ sưu tập trong MongoDB một cách nhanh chóng

Chúng ta hãy xem xét từng phương pháp một

Để bắt đầu, chúng tôi cần một máy chủ mongo trong máy cục bộ của chúng tôi. Để làm điều đó, hãy mở thiết bị đầu cuối cho Mac và Linux và PowerShell hoặc dấu nhắc lệnh cho Windows. Chạy lệnh sau

Chỉ huy. mongod

How to Create a Collection in MongoDB

Điều này kích hoạt máy chủ MongoDB.  

Để chạy các lệnh MongoDB, chúng ta cần khởi động trình bao MongoDB. Đối với điều này, hãy mở một cửa sổ mới trong terminal hoặc PowerShell hoặc dấu nhắc lệnh và chạy lệnh sau. Chúng ta sẽ gọi cửa sổ này là mongo shell trong phần còn lại của bài viết này

Chỉ huy. mongo

How to Create a Collection in MongoDB

Điều này tạo ra một shell nơi chúng ta có thể chạy các lệnh MongoDB

Hãy tạo một cơ sở dữ liệu và sử dụng nó để chúng tôi có thể kiểm tra các ví dụ của mình. Để làm điều tương tự, hãy chạy lệnh sau trong trình bao mongo

Chỉ huy. sử dụng myDB

How to Create a Collection in MongoDB

Điều này tạo ra một cơ sở dữ liệu mới với tên myDB và chuyển sang cơ sở dữ liệu đó để chúng tôi có thể làm việc với nó

Phương thức createCollection()

Sử dụng phương thức createCollection, chúng ta có thể tạo một bộ sưu tập không có bất kỳ tài liệu nào hoặc bộ sưu tập trống.  

Cú pháp của lệnh createCollection() như sau.  

cú pháp. db. createCollection(tên, tùy chọn)

Phương thức createCollection nhận 2 tham số, tham số đầu tiên là tên của bộ sưu tập là một chuỗi và tham số còn lại là một đối tượng tùy chọn được sử dụng để định cấu hình bộ sưu tập. Đối tượng tùy chọn là tùy chọn.   

Để tạo bộ sưu tập mà không chuyển các tùy chọn bằng phương thức createCollection, hãy chạy lệnh sau trong trình bao mongo.  

Chỉ huy. db. createCollection("testCollection")

How to Create a Collection in MongoDB

Điều này tạo ra một bộ sưu tập có tên testCollection bên trong cơ sở dữ liệu myDB

Để xem bộ sưu tập, hãy chạy lệnh sau bên trong vỏ mongo

Chỉ huy. trưng bày bộ sưu tập

How to Create a Collection in MongoDB

Điều này sẽ hiển thị tất cả các bộ sưu tập chúng tôi có trong cơ sở dữ liệu

Chúng tôi có thể thêm các cấu hình bổ sung vào bộ sưu tập. Ví dụ: chúng ta có thể thêm xác thực hoặc tạo bộ sưu tập giới hạn bằng cách sử dụng tham số thứ hai là đối tượng tùy chọn

Tùy chọn cấu hình để tạo bộ sưu tập trong MongoDB

Cú pháp cơ bản để cấu hình một đối tượng trong phương thức createCollection như bên dưới

cú pháp

db.createCollection( , 
   { 
     capped: , 
     autoIndexId: , 
     size: , 
     max: , 
     storageEngine: , 
     validator: , 
     validationLevel: , 
     validationAction: , 
     indexOptionDefaults: , 
     viewOn: ,              // Added in MongoDB 3.4 
     pipeline: ,          // Added in MongoDB 3.4 
     collation: ,         // Added in MongoDB 3.4 
     writeConcern:  
   } 
) 

Hãy xem xét tất cả các tùy chọn một cách chi tiết

FieldTypeDescriptioncappedboolean(Tùy chọn). Để tạo một bộ sưu tập giới hạn, hãy chỉ định true. Nếu bạn chỉ định đúng, bạn cũng phải đặt kích thước tối đa trong trường kích thước. autoIndexId boolean(Tùy chọn). Chỉ định sai để tắt tự động tạo chỉ mục trên trường _id. kích thướcsốTùy chọn. Chỉ định 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 khoảng trống cho các tài liệu mới. Trường kích thước là bắt buộc đối với các bộ sưu tập giới hạn và bỏ qua đối với các bộ sưu tập khác. số tối đaTùy chọn. Số lượng tài liệu tối đa được phép trong bộ sưu tập giới hạn. Giới hạn kích thước được ưu tiên hơn giới hạn này. Nếu một bộ sưu tập giới hạn đạt đến giới hạn kích thước 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ũ. Nếu bạn muốn sử dụng giới hạn tối đa, hãy đảm bảo rằng giới hạn kích thước, được yêu cầu đối với bộ sưu tập giới hạn, đủ để chứa số lượng tài liệu tối đa. lưu trữEnginedocumentTùy chọn. Chỉ khả dụng cho công cụ lưu trữ WiredTiger

Cho phép người dùng chỉ định cấu hình cho công cụ lưu trữ trên cơ sở mỗi bộ sưu tập khi tạo bộ sưu tập

trình xác nhận tài liệuTùy chọn. Cho phép người dùng chỉ định các quy tắc hoặc biểu thức xác thực cho bộ sưu tập. xác thựcLevelstringTùy chọn. Xác định mức độ nghiêm ngặt của MongoDB áp dụng các quy tắc xác thực cho các tài liệu hiện có trong quá trình cập nhật. xác thựcChuỗi hành độngTùy chọn. Xác định xem có tạo lỗi trên các tài liệu không hợp lệ hay chỉ cảnh báo về các vi phạm và cho phép chèn các tài liệu không hợp lệ. chỉ mụcOptionDefaultstài liệuTùy chọn. Cho phép người dùng chỉ định cấu hình mặc định cho các chỉ mục khi tạo bộ sưu tập. viewOnstringTên của bộ sưu tập nguồn hoặc dạng xem để tạo dạng xem. Tên không phải là không gian tên đầy đủ của bộ sưu tập hoặc chế độ xem; . e. không bao gồm tên cơ sở dữ liệu và ngụ ý cơ sở dữ liệu giống như dạng xem để tạo. Bạn phải tạo các dạng xem trong cùng cơ sở dữ liệu với bộ sưu tập nguồn. pipearrayMột mảng bao gồm (các) giai đoạn đường ống tổng hợp

tạo chế độ xem bằng cách áp dụng đường ống đã chỉ định cho bộ sưu tập hoặc chế độ xem viewOn

collationdocumentChỉ định đối chiếu mặc định cho bộ sưu tập

Đối chiếu cho phép người dùng chỉ định các quy tắc dành riêng cho ngôn ngữ để so sánh chuỗi, chẳng hạn như quy tắc cho chữ cái và dấu trọng âm

ghiMối quan tâmtài liệuTùy chọn. Một tài liệu thể hiện mối quan tâm ghi cho hoạt động. Bỏ qua để sử dụng mối quan tâm ghi mặc định

Để biết thêm về các tùy chọn, hãy truy cập liên kết này

Ví dụ về Tạo bộ sưu tập trong MongoDB

Một ví dụ để tạo một bộ sưu tập với các tùy chọn trước khi chèn tài liệu được hiển thị bên dưới. Chạy lệnh dưới đây trong vỏ mongo

Chỉ huy. db. createCollection("anotherCollection", { capped. đúng, tự động IndexID. thật, kích thước. 6142800, tối đa. 10000 } )

How to Create a Collection in MongoDB

Điều này tạo ra một bộ sưu tập giới hạn

một bộ sưu tập giới hạn là gì?

Bộ sưu tập có kích thước cố định tự động ghi đè lên các mục cũ nhất khi đạt đến kích thước tối đa. Oplog MongoDB được sử dụng trong bản sao là một bộ sưu tập có giới hạn

Xem thêm về capped collection và oplog tại đây

Tạo Bộ sưu tập với Xác thực Tài liệu

MongoDB có khả năng thực hiện xác thực lược đồ trong quá trình cập nhật và chèn. Nói cách khác, chúng tôi có thể xác thực từng tài liệu trước khi cập nhật hoặc chèn tài liệu mới vào bộ sưu tập

Để chỉ định quy tắc xác thực cho bộ sưu tập, chúng tôi cần sử dụng db. createCollection() với tùy chọn trình xác thực

MongoDB hỗ trợ xác thực lược đồ JSON. Để chỉ định xác thực Lược đồ JSON, hãy sử dụng toán tử $jsonSchema trong biểu thức trình xác thực của bạn. Đây là cách được đề xuất để thực hiện xác thực trong MongoDB

$jsonSchema là gì?

Toán tử $jsonSchema khớp với các tài liệu đáp ứng Lược đồ JSON được chỉ định. Nó có cú pháp sau

cú pháp. { $jsonSchema. }
Ví dụ cho đối tượng Lược đồ json được đưa ra dưới đây
Thí dụ.  

{
  $jsonSchema: {
     required: [ "name", "year", "skills", "address" ],
     properties: {
        name: {
           bsonType: "string",
           description: "must be a string and is required"
        },
        address: {
           bsonType: "object",
           required: [ "zipcode" ],
           properties: {
               "street": { bsonType: "string" },
               "zipcode": { bsonType: "string" }
           }
        }
     }
  }
}

Để tạo một bộ sưu tập với các quy tắc xác thực, hãy chạy lệnh bên dưới trong vỏ mongo

Chỉ huy

db.createCollection("employees", { 
   validator: { 
      $jsonSchema: { 
         bsonType: "object", 
         required: [ "name", "year", "skills", "address" ], 
         properties: { 
            name: { 
               bsonType: "string", 
               description: "must be a string and is required" 
            }, 
            year: { 
               bsonType: "int", 
               minimum: 2017, 
               maximum: 2021, 
               description: "must be an integer in [ 2017, 2021] and is required" 
            }, 
            skills: { 
               enum: [ "JavaScript", "React", "Mongodb", null ], 
               description: "can only be one of the enum values and is required" 
            }, 
            salary: { 
               bsonType: [ "double" ], 
               description: "must be a double if the field exists" 
            }, 
            address: { 
               bsonType: "object", 
               required: [ "city" ], 
               properties: { 
                  street: { 
                     bsonType: "string", 
                     description: "must be a string if the field exists" 
                  }, 
                  city: { 
                     bsonType: "string", 
                     description: "must be a string and is required" 
                  } 
               } 
            } 
         } 
      } 
   } 
})
How to Create a Collection in MongoDB

Thao tác này tạo bộ sưu tập có xác thực.

Bây giờ nếu bạn chạy lệnh show collections, thì bộ sưu tập của nhân viên sẽ hiển thị

How to Create a Collection in MongoDB

Bây giờ, hãy xem phương pháp thứ hai đó là “Tạo Bộ sưu tập trong MongoDB một cách nhanh chóng”

Tạo Bộ sưu tập trong MongoDB một cách nhanh chóng

Một trong những điều tốt nhất về MongoDB là bạn không cần tạo bộ sưu tập trước khi chèn tài liệu vào đó. Chúng tôi có thể chèn một tài liệu vào bộ sưu tập và MongoDB tạo một bộ sưu tập một cách nhanh chóng. Sử dụng cú pháp dưới đây để tạo bộ sưu tập nhanh chóng

cú pháp. db. bộ sưu tập_name. đút chìa khóa vào. giá trị, khóa. giá trị…})

Bây giờ, hãy tạo một bộ sưu tập một cách nhanh chóng. Để đạt được điều đó, hãy chạy lệnh sau trong trình bao mongo

Chỉ huy

db.students.insert({
name: "Sai",
  age: 18,
  class: 10
})
How to Create a Collection in MongoDB

Thao tác này tạo một bộ sưu tập có tên sinh viên trong cơ sở dữ liệu. Để xác nhận, bạn có thể chạy lệnh show collections và kiểm tra. Điều này sẽ hiển thị tất cả các bộ sưu tập có bộ sưu tập sinh viên, như trong hình dưới đây.

How to Create a Collection in MongoDB

Để kiểm tra xem tài liệu đã được chèn thành công hay chưa, hãy chạy lệnh bên dưới trong mongoshell để kiểm tra

cú pháp. db. bộ sưu tập_name. tìm thấy()

Chỉ huy. db. sinh viên. tìm thấy()

How to Create a Collection in MongoDB

Điều này sẽ hiển thị tất cả các tài liệu bên trong bộ sưu tập

Phần kết luận

Trong blog này, bạn đã thấy cách tạo một bộ sưu tập trong MongoDB bằng các phương thức khác nhau, cùng với các ví dụ.  

MongoDB là một công nghệ đang phát triển nhanh chóng hiện nay vì nó linh hoạt, nhanh chóng và vì nhiều lý do khác. Nhiều công ty đang sử dụng MongoDB làm cơ sở dữ liệu mà họ lựa chọn. Học MongoDB được nhiều nhà phát triển web khuyến nghị vì nó cũng tăng khả năng kiếm được việc làm

Có lược đồ nào trong MongoDB không?

Dữ liệu trong MongoDB có lược đồ linh hoạt . Bộ sưu tập không thực thi cấu trúc tài liệu theo mặc định. Tính linh hoạt này cung cấp cho bạn các lựa chọn lập mô hình dữ liệu để phù hợp với ứng dụng của bạn và các yêu cầu về hiệu suất của nó.

Làm cách nào để tạo lược đồ trong MongoDB Compass?

Bạn có thể tạo bộ sưu tập mới trong cơ sở dữ liệu hiện có. .
Nhấp vào nút Tạo bộ sưu tập. Từ màn hình Bộ sưu tập, nhấp vào nút Tạo Bộ sưu tập
Nhập thông tin bộ sưu tập. Trong hộp thoại Tạo bộ sưu tập, nhập tên của bộ sưu tập để tạo. .
Nhấn Create Collection để tạo bộ sưu tập

Bạn sẽ sử dụng thư viện nào để tạo lược đồ cho MongoDB?

Mongoose là thư viện Mô hình hóa dữ liệu đối tượng (ODM) cho MongoDB và Node. js. Nó quản lý các mối quan hệ giữa dữ liệu, cung cấp xác thực lược đồ và được sử dụng để dịch giữa các đối tượng trong mã và biểu diễn của các đối tượng đó trong MongoDB.