您可以設定集合,以便根據 JSON 綱要驗證文件。這讓您能夠要求文件在插入或更新到集合之前,必須具有特定的結構。您可以使用 https://json-schema.dev.org.tw 中描述的方式指定 JSON 綱要。綱要驗證由伺服器執行,如果集合中的文件未根據指派的 JSON 綱要驗證,則會傳回錯誤訊息。如需 MySQL 中 JSON 綱要驗證的詳細資訊,請參閱 JSON 綱要驗證函式。本節說明如何設定集合以根據 JSON 綱要驗證文件。
若要啟用或修改 JSON 綱要驗證,請提供給集合一個如下所示的 validation
JSON 物件
{
validation: {
level: "off|strict",
schema: "json-schema"
}
}
在此,validation
是一個 JSON 物件,其中包含您可以用來設定 JSON 綱要驗證的索引鍵。第一個索引鍵是 level
,它可以採用值 strict
或 off
。第二個索引鍵 schema
是一個 JSON 綱要,如 https://json-schema.dev.org.tw 中所定義。如果 level
索引鍵設定為 strict
,則當文件新增至集合時,或當文件已存在於集合中時,如果文件透過某些作業更新,則會根據 json-schema
驗證文件。如果文件未通過驗證,伺服器會產生錯誤且作業會失敗。如果 level
索引鍵設定為 off
,則不會根據 json-schema
驗證文件。
若要在您建立新集合時啟用 JSON 綱要驗證,請提供如上述的 validation
JSON 物件。例如,若要建立一個保存經度和緯度值的集合,並要求將這些值驗證為數字
coll = schema.create_collection("longlang", validation={
"level": "strict",
"schema": {
"id": "https://json-schema.dev.org.tw/geo",
"$schema": "https://json-schema.dev.org.tw/draft-06/schema#",
"description": "A geographical coordinate",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": ["latitude", "longitude"]
}
})
您可以修改集合以控制文件的 JSON 綱要驗證。例如,您可以啟用或停用驗證,或變更用來驗證文件的 JSON 綱要。
為了修改集合的 JSON 綱要驗證,請在呼叫 Collection.modify() 方法時,提供 validation
JSON 物件。例如,若要修改集合以停用 JSON 綱要驗證,validation
物件將會是
{
validation: {
"level": "off"
}
}
在修改 JSON 綱要驗證時,您可以單獨提供 level
選項來僅變更綱要驗證的層級。例如,傳遞如上所示的 JSON 物件,以停用 JSON 綱要驗證。這不會對先前指定的 JSON 綱要進行任何變更,也不會從集合中移除 JSON 綱要。或者,您也可以僅傳遞新的 JSON 綱要物件來僅修改綱要。