DOCS Home → Dịch vụ ứng dụng Atlas → Atlas App Services
Lược đồ là một đối tượng JSON xác định cấu trúc và nội dung của dữ liệu của bạn. Bạn có thể sử dụng các lược đồ BSON của Atlas App Services, mở rộng tiêu chuẩn lược đồ JSON, để xác định mô hình dữ liệu của ứng dụng của bạn và xác nhận các tài liệu bất cứ khi nào chúng được tạo, thay đổi hoặc xóa.JSON Schema standard, to define your application's data model and validate documents whenever they're created, changed, or deleted.
Các lược đồ đại diện cho các loại dữ liệu hơn là các giá trị cụ thể. Dịch vụ ứng dụng hỗ trợ nhiều loại lược đồ tích hợp. Chúng bao gồm các nguyên thủy, như chuỗi và số, cũng như các loại cấu trúc, như các đối tượng và mảng, mà bạn có thể kết hợp để tạo các lược đồ đại diện cho các loại đối tượng tùy chỉnh.
Ví dụ, đây là một lược đồ cơ bản cho dữ liệu về xe hơi và một số đối tượng xe phù hợp với lược đồ:
Các lược đồ là đặc điểm kỹ thuật cho mô hình dữ liệu của ứng dụng của bạn. Khi bạn đã xác định một lược đồ, các dịch vụ ứng dụng cung cấp cho bạn các công cụ và dịch vụ bổ sung để làm việc với dữ liệu phù hợp với lược đồ.
Dịch vụ ứng dụng sử dụng các lược đồ trong nhiều dịch vụ ứng dụng:
Đồng bộ hóa thiết bị Atlas sử dụng các lược đồ để đồng bộ hóa dữ liệu giữa các cõi và MongoDB Atlas. Các dịch vụ ứng dụng cũng có thể tạo các mô hình đối tượng SDK thành ngữ cho bạn dựa trên các lược đồ của bạn.
API GraphQL sử dụng các lược đồ để tự động tạo lược đồ GraphQL bao gồm các loại, truy vấn và đột biến. Bạn có thể mở rộng API của ứng dụng của mình với trình giải quyết tùy chỉnh tham chiếu các loại được xác định bởi các lược đồ của bạn.
Quy tắc truy cập dữ liệu xác nhận dữ liệu phù hợp với lược đồ của bạn trước và sau mỗi yêu cầu. Nếu bất kỳ tài liệu nào không xác thực, các dịch vụ ứng dụng sẽ ngăn chặn hoặc quay lại toàn bộ yêu cầu.
Lược đồ thu thập cấp độ gốc có thể chứa các lược đồ bổ sung mô tả các thuộc tính của loại. Mỗi lược đồ cấp độ gốc là một lược đồ object
có dạng sau:
{ "bsonType": "object", "title": "", "required": ["", ...], "properties": { "": } }
Bạn có thể sử dụng bất kỳ loại lược đồ được hỗ trợ nào để định cấu hình các thuộc tính của đối tượng:
Sự vật
Mảng
Sợi dây
Con số
Boolean
Uuid
ID đối tượng
Dữ liệu nhị phân
Trộn
Bộ
Từ điển
Ghi chú
Dịch vụ ứng dụng xác nhận tất cả các hoạt động ghi [chèn, cập nhật và xóa] trên bộ sưu tập MongoDB so với lược đồ thu thập của nó. Nó kiểm tra mọi tài liệu trước và sau mỗi yêu cầu để đảm bảo rằng tất cả các thuộc tính phù hợp với lược đồ và không có thay đổi không hợp lệ nào xảy ra.
Dịch vụ ứng dụng đánh giá kết quả của tất cả các tài liệu ghi và so sánh chúng với lược đồ trước khi cam kết ghi vào cụm của bạn. Nếu kết quả của bất kỳ hoạt động ghi nào trong một yêu cầu không khớp với lược đồ, các dịch vụ ứng dụng sẽ trả về lỗi cho người dùng mà không áp dụng bất kỳ thay đổi nào trong yêu cầu.
Thí dụ
Một bộ sưu tập có lược đồ sau:
{ "title": "person", "properties": { "_id": { "bsonType": "objectId" }, "name": { "bsonType": "string" } } }
Người dùng có quyền đọc và viết tất cả các trường muốn cập nhật trường name
của một tài liệu cụ thể. Họ phát hành truy vấn sau:
collection.updateOne[ { "_id": BSON.ObjectId["5ae782e48f25b9dc5c51c4d0"] }, { "$set": { "name": 42 } } ]
Truy vấn cố gắng đặt giá trị của name
thành số 42
, nhưng lược đồ yêu cầu giá trị là string
. Các dịch vụ ứng dụng sẽ từ chối hoạt động ghi này mặc dù người dùng có quyền cập nhật tài liệu vì kết quả ghi không phù hợp với lược đồ.