Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Trên trang này

  • Khi nào sử dụng xác thực lược đồ
  • Khi MongoDB kiểm tra xác thực
  • Điều gì xảy ra khi một tài liệu không xác nhận được
  • Nhiệm vụ
  • Tìm hiểu thêm

Xác thực lược đồ cho phép bạn tạo các quy tắc xác thực cho các trường của mình, chẳng hạn như các loại dữ liệu được phép và phạm vi giá trị.

MongoDB sử dụng mô hình lược đồ linh hoạt, có nghĩa là các tài liệu trong bộ sưu tập không cần phải có cùng trường hoặc loại dữ liệu theo mặc định. Khi bạn đã thiết lập một lược đồ ứng dụng, bạn có thể sử dụng xác thực lược đồ để đảm bảo không có thay đổi lược đồ ngoài ý muốn hoặc các loại dữ liệu không đúng.

Nhu cầu xác thực lược đồ của bạn phụ thuộc vào cách người dùng sử dụng ứng dụng của bạn. Khi ứng dụng của bạn đang ở giai đoạn đầu phát triển, xác thực lược đồ có thể áp đặt các hạn chế không có ích vì bạn không biết bạn muốn tổ chức dữ liệu của mình như thế nào. Cụ thể, các trường trong bộ sưu tập của bạn có thể thay đổi theo thời gian.

Xác thực lược đồ là hữu ích nhất cho một ứng dụng đã được thiết lập trong đó bạn có ý thức tốt về cách tổ chức dữ liệu của mình. Bạn có thể sử dụng xác thực lược đồ trong các kịch bản sau:

  • Đối với bộ sưu tập người dùng, đảm bảo rằng trường password chỉ được lưu trữ dưới dạng chuỗi. Xác thực này ngăn người dùng lưu mật khẩu của họ dưới dạng một kiểu dữ liệu bất ngờ, giống như một hình ảnh.

  • Đối với một bộ sưu tập bán hàng, hãy đảm bảo rằng trường item thuộc về một danh sách các mặt hàng mà cửa hàng của bạn bán. Xác thực này ngăn người dùng vô tình viết sai tên mặt hàng khi nhập dữ liệu bán hàng.

  • Đối với một bộ sưu tập của sinh viên, đảm bảo rằng trường gpa luôn là một con số dương. Xác thực này bắt lỗi chính tả trong quá trình nhập dữ liệu.

Khi bạn tạo một bộ sưu tập mới với xác thực lược đồ, MongoDB sẽ kiểm tra xác thực trong quá trình cập nhật và chèn vào bộ sưu tập đó.

Khi bạn thêm xác thực vào một bộ sưu tập hiện có, không trống:

  • Các tài liệu mới được chèn được kiểm tra để xác nhận.

  • Các tài liệu đã tồn tại trong bộ sưu tập của bạn không được kiểm tra xác thực cho đến khi chúng được sửa đổi. Hành vi cụ thể cho các tài liệu hiện có phụ thuộc vào mức xác thực đã chọn của bạn. Để tìm hiểu thêm, xem Chỉ định mức xác thực cho các tài liệu hiện có.

Thêm xác thực vào một bộ sưu tập hiện tại không thực thi xác thực trên các tài liệu hiện có. Để kiểm tra bộ sưu tập cho các tài liệu không hợp lệ, hãy sử dụng lệnh validate.

Theo mặc định, khi hoạt động chèn hoặc cập nhật sẽ dẫn đến một tài liệu không hợp lệ, MongoDB từ chối hoạt động và không ghi tài liệu vào bộ sưu tập.

Ngoài ra, bạn có thể định cấu hình MongoDB để cho phép các tài liệu không hợp lệ và cảnh báo nhật ký khi vi phạm lược đồ xảy ra.

Để tìm hiểu thêm, xem Chọn cách xử lý các tài liệu không hợp lệ.

Đối với các nhiệm vụ phổ biến liên quan đến xác thực lược đồ, hãy xem các trang sau:

  • Chỉ định xác thực lược đồ JSON

  • Chỉ định xác thực với các toán tử truy vấn

  • Chỉ định các giá trị trường được phép

  • Xem các quy tắc xác thực hiện có

  • Sửa đổi xác thực lược đồ

  • Truy vấn và sửa đổi các tài liệu hợp lệ hoặc không hợp lệ

  • Bỏ qua xác thực lược đồ

Để tìm hiểu về mô hình lược đồ linh hoạt của MongoDB, hãy xem Giới thiệu mô hình dữ liệu.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Định nghĩa của lược đồ MongoDB

Sơ đồ MongoDB về cơ bản được sử dụng trong công cụ dòng lệnh hoặc chúng tôi có thể sử dụng nó một cách lập trình trong ứng dụng của chúng tôi ở cấp độ mô-đun. Như chúng ta đã biết MongoDB là không có lược đồ, tại thời điểm tạo bất kỳ đối tượng nào, chúng ta không thể tạo bất kỳ lược đồ nào trong MongoDB. Chúng ta có thể thực thi lược đồ để thu thập trong MongoDB bằng cách sử dụng cụm Atlas MongoDB, để thực thi lược đồ tài liệu mà chúng ta cần trước tiên để kết nối cơ sở dữ liệu và bộ sưu tập. Chúng tôi cũng có thể tạo cấu trúc lược đồ của bộ sưu tập bằng cách sử dụng lệnh created thu thập, chúng tôi cũng có thể kiểm tra trường chỉ mục và trường thu thập trong MongoDB.

Syntax:

Dưới đây là cú pháp của lược đồ MongoDB.

1) Để hiển thị lược đồ của Bộ sưu tập INDEX -

db.name_of_collection.getIndices ()

2) Để hiển thị lược đồ của các bộ sưu tập -

var schematodo = db.name_of_collection.findOne()
for (var key (Used to show key fields) in schematodo (Used to display schema field of collections)) { print (key, typeof key) ; }

3) Cấu trúc lược đồ của tài liệu -

{
Properties: {
Field_name: {bsonType (type of document) : string}
Field_name: {bsonType (type of document) : string}
}
}

Mô tả về Thông Số:

1) Tên của bộ sưu tập - Điều này được định nghĩa là tên của bộ sưu tập mà chúng tôi đã kiểm tra cấu trúc lược đồ của thu thập và chỉ mục. Chúng ta có thể kiểm tra cấu trúc lược đồ của bất kỳ bộ sưu tập nào trong MongoDB.

2) Getindices - Đây là phương pháp trong MongoDB được sử dụng để hiển thị cấu trúc lược đồ của tất cả các chỉ mục từ lược đồ được chỉ định mà chúng tôi đã sử dụng trong lệnh của mình.

3) FindOne - Phương pháp này được sử dụng để tìm các tài liệu duy nhất từ ​​các bộ sưu tập. Sử dụng phương pháp này, chúng tôi cũng tìm thấy tất cả các trường thu thập trong MongoDB.

4) Schematodo - Điều này được sử dụng để hiển thị cấu trúc lược đồ của việc thu thập cơ sở dữ liệu trong MongoDB. Sử dụng Schematodo, chúng tôi có thể hiển thị tất cả các trường từ các bộ sưu tập.

5) Khóa - Tham số này được định nghĩa là in trường từ bộ sưu tập được chỉ định mà chúng tôi đã sử dụng trong truy vấn của mình.

6) Loại khóa - Tham số này được định nghĩa là một loại khóa mà chúng tôi đã sử dụng trong truy vấn để hiển thị cấu trúc lược đồ.

7) Thuộc tính - Tham số này được định nghĩa là thuộc tính của trường tài liệu mà chúng tôi đã sử dụng trong truy vấn của mình.

8) Tên trường - Điều này được định nghĩa là tên của trường mà chúng tôi đã sử dụng trong truy vấn của mình. Sử dụng tên trường Chúng tôi có thể truy xuất cấu trúc tài liệu.

9) Loại BSON - Điều này được định nghĩa là loại tài liệu mà chúng tôi đã sử dụng trong bộ sưu tập.

Lược đồ hoạt động như thế nào trong MongoDB?

  • MongoDB là cấu trúc không có lược đồ nhưng chúng ta có thể thực thi bộ sưu tập bằng cách xác định lược đồ tài liệu.
  • Lược đồ không có gì ngoài các tài liệu thông thường được tuân thủ giống như cùng một đặc điểm kỹ thuật của lược đồ JSON.
  • Chúng ta cũng có thể xác nhận lược đồ trong máy chủ MongoDB. Chúng tôi cũng có thể sử dụng phím loại để kiểm soát giá trị trường thu thập.
  • Trong MongoDB, lược đồ tài liệu sẽ đại diện cho bất kỳ toán tử loại BSON nào. Chúng ta có thể xác định cấu trúc lược đồ của các loại sau.

1) Booleans 2) Số 3) Chuỗi 4) Mảng 5) Đối tượng 6) Từ điển 7) Đặt 8) hỗn hợp 9) ObjectID 10) UUID
2) Numbers
3) Strings
4) Arrays
5) Objects
6) Dictionary’s
7) Sets
8) Mixed
9) ObjectId
10) UUID

Để hiển thị lược đồ của các chỉ mục trong MongoDB, trước tiên chúng ta cần kết nối với cơ sở dữ liệu cụ thể. Ví dụ dưới đây cho thấy rằng chúng ta cần kết nối cơ sở dữ liệu để hiển thị cấu trúc của các chỉ mục.

Code:

db.MongoDB_Update.getIndices ()
use test
db.MongoDB_Update.getIndices ()

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Chúng ta cần kết nối cơ sở dữ liệu để hiển thị cấu trúc của các chỉ mục

  • Trong ví dụ trên khi lần đầu tiên thực hiện truy vấn, chúng tôi chưa kết nối với cơ sở dữ liệu, do đó, nó sẽ không hiển thị kết quả của truy vấn. Nhưng sau khi kết nối với cơ sở dữ liệu được chỉ định, chúng ta có thể thấy lược đồ của các chỉ mục trong MongoDB.
  • SuperSet được mã hóa nhị phân sẽ hỗ trợ các loại dữ liệu bổ sung trong MongoDB.
  • Chúng ta có thể thực thi lược đồ tài liệu bằng Atlas MongoDB. Để tạo lược đồ thực thi trước tiên, chúng ta cần kết nối cơ sở dữ liệu và bộ sưu tập.
  • Chúng tôi không tạo ra một bộ sưu tập với lược đồ trong MongoDB, chúng tôi có thể tạo ra một bộ sưu tập trống trong MongoDB.
  • Tại thời điểm chèn tài liệu, MongoDB tự động tạo lược đồ cho bộ sưu tập.
  • Chúng ta có thể nói rằng MongoDB là cơ sở dữ liệu không có lược đồ nhưng chúng ta có thể triển khai lớp của riêng mình trong chương trình của mình để hạn chế bộ sưu tập trước khi chèn bất kỳ dữ liệu nào vào bộ sưu tập.

Thí dụ

Dưới đây ví dụ cho thấy thực thi lược đồ tài liệu thu thập bằng cách sử dụng MongoDB Atlas. & NBSP; Chúng tôi đã sử dụng các bước dưới đây để thực thi lược đồ tài liệu.

1) Tạo một ứng dụng mới hoặc mở ứng dụng hiện có

Trong bước đầu tiên, chúng tôi đã tạo tên ứng dụng dưới dạng ứng dụng-3 và liên kết cơ sở dữ liệu cụm là MongoDBSchema. Sau khi xác định tên của ứng dụng và liên kết với cơ sở dữ liệu, sau đó nhấp vào tạo một ứng dụng mới.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Ví dụ để tạo ứng dụng mới để thực thi lược đồ.

2) Thêm bộ sưu tập và cơ sở dữ liệu

  • Sau khi tạo thành công ứng dụng, hãy thêm cơ sở dữ liệu và bộ sưu tập vào ứng dụng được chỉ định. Đầu tiên, nhấp vào Thêm Bộ sưu tập.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Ví dụ để thêm bộ sưu tập và cơ sở dữ liệu.

  • Sau khi nhấp vào Thêm Bộ sưu tập Thêm cơ sở dữ liệu và bộ sưu tập vào ứng dụng.
  • Chúng tôi đã thêm cơ sở dữ liệu Sample_Training và bảng Lớp vào ứng dụng.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Kiểm tra bộ sưu tập và cơ sở dữ liệu được thêm vào ứng dụng.

3) Tạo lược đồ

Sau khi thêm cơ sở dữ liệu và bộ sưu tập tạo ra lược đồ. Để tạo lược đồ, nhấp vào tab lược đồ và chọn tên thu thập sau khi chọn tên thu thập, nhấp vào tab Tạo lược đồ. Sau khi tạo lược đồ, nhấp vào tab Lưu.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Tạo lược đồ.

4) Chạy xác thực trên lược đồ được tạo

  • Trong ví dụ dưới đây, chúng tôi phải kiểm tra xác nhận của chúng tôi về bộ sưu tập Grades có hoạt động hay không.
  • Nhấp đầu tiên trên tab xác thực sau đó chọn các tài liệu mẫu lớn hơn 1000.

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Ví dụ để chạy xác thực trên lược đồ.

5) Hiển thị chi tiết lược đồ chỉ mục

Trong ví dụ dưới đây, chúng tôi đã hiển thị cấu trúc lược đồ của các chỉ mục. Chúng tôi đã hiển thị tất cả các cấu trúc chỉ mục từ các bộ sưu tập MongoDB_Update.

Code:

db.MongoDB_Update.getIndices ()

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Ví dụ để hiển thị chi tiết cấu trúc lược đồ chỉ số.

6) Hiển thị các trường lược đồ từ các bộ sưu tập

Trong ví dụ dưới đây, chúng tôi có một hiển thị lược đồ của bộ sưu tập. Chúng ta có thể thấy rằng tất cả các trường từ các trường MongoDB_Update sẽ được hiển thị.

Code:

var schematodo = db.MongoDB_Update.findOne()
for (var key in schematodo) { print (key, typeof key) ; }

Hướng dẫn what is schema in mongodb? - lược đồ trong mongodb là gì?

Hình - Ví dụ để hiển thị các trường lược đồ từ các bộ sưu tập.

Sự kết luận

Về cơ bản, MongoDB là cơ sở dữ liệu không có lược đồ, chúng tôi không thể tạo lược đồ trong MongoDB, nhưng chúng tôi thực thi các tài liệu thu thập trong mã ứng dụng hoặc sử dụng Công cụ GUI Atlas MongoDB. Để tạo lược đồ trước tiên, chúng ta cần kết nối với cơ sở dữ liệu và bộ sưu tập được chỉ định trong MongoDB.

Bài viết đề xuất

Đây là một hướng dẫn cho lược đồ MongoDB. Ở đây chúng tôi thảo luận về định nghĩa, cách thức hoạt động của lược đồ trong MongoDB? cùng với các ví dụ tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm -

  1. MongoDB tham gia
  2. MongoDB findOne ()
  3. Tập đoàn MongoDB bởi
  4. Cơ sở dữ liệu MongoDB

MongoDB có lược đồ không?

Dữ liệu trong MongoDB có một 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 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ó. Giới thiệu về mô hình dữ liệu trong MongoDB.. Collections do not enforce document structure by default. This flexibility gives you data-modeling choices to match your application and its performance requirements. An introduction to data modeling in MongoDB.

Lược đồ ở MongoDB ở đâu?

Chúng ta có thể nhận được đối tượng lược đồ/tài liệu đầu tiên của bộ sưu tập bằng cách sử dụng: var lược đồ = db.users.findone ();var schemaObj = db. users. findOne();

Tại sao chúng ta sử dụng lược đồ trong MongoDB?

Hầu hết các đối số để thực thi lược đồ trên dữ liệu của bạn đều được biết đến: các lược đồ duy trì cấu trúc, đưa ra một ý tưởng rõ ràng về những gì đang đi vào cơ sở dữ liệu, giảm các lỗi có thể phòng ngừa được và cho phép mã sạch hơn (không cần phải kiểm tra loại trường của trườngRa khỏi cơ sở dữ liệu trước khi sử dụng nó).schemas maintain structure, giving a clear idea of what is going into the database, reducing preventable bugs and allowing for cleaner code (no more having to check the type of a field coming out of the database before using it).

Lược đồ và bộ sưu tập trong MongoDB là gì?

MongoDB là cấu trúc không có lược đồ nhưng chúng ta có thể thực thi bộ sưu tập bằng cách xác định lược đồ tài liệu.Lược đồ không có gì ngoài các tài liệu thông thường được tuân thủ giống như cùng một đặc điểm kỹ thuật của lược đồ JSON.Chúng ta cũng có thể xác nhận lược đồ trong máy chủ MongoDB.Schema is nothing but regular documents which was adhered to like the same specification of JSON schema. We can also validate the schema in the MongoDB server.