4.6 Валидация JSON-схем
Коллекции могут быть настроены для проверки документов по JSON-схеме. Это позволяет потребовать определенной структуры документов перед их вставкой или обновлением в коллекции. Вы указываете JSON-схему, как описано на http://json-schema.org. Проверка схемы выполняется сервером, который возвращает сообщение об ошибке, если документ в коллекции не соответствует заданной JSON-схеме. Для получения дополнительной информации о валидации JSON-схем в MySQL, см. . В этом разделе описывается, как настроить коллекцию для проверки документов по JSON-схеме.
Для включения или изменения проверки JSON-схемы вы предоставляете коллекции validation JSON-объект, подобный следующему:
{
validation: {
level: "off|strict",
schema: "json-schema"
}
}
Здесь validation — JSON-объект, содержащий ключи, которые вы можете использовать для настройки проверки JSON-схемы. Первый ключ — level, который может принимать значение strict или off. Второй ключ, schema, — это JSON-схема, как определено на http://json-schema.org. Если ключ level установлен в значение strict, документы проверяются по json-schema при добавлении в коллекцию или, если они уже находятся в коллекции, при их обновлении некоторыми операциями. Если документ не проходит проверку, сервер генерирует ошибку, и операция завершается неудачно. Если ключ level установлен в значение off, документы не проверяются по json-schema.
Создание валидированной коллекции
Для включения проверки JSON-схемы при создании новой коллекции, предоставьте validation JSON-объект, как описано выше. Например, для создания коллекции, хранящей значения долготы и широты, и требующей проверки этих значений как чисел:
coll = schema.create_collection("longlang", validation={
"level": "strict",
"schema": {
"id": "http://json-schema.org/geo",
"$schema": "http://json-schema.org/draft-06/schema#",
"description": "A geographical coordinate",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": ["latitude", "longitude"]
}
})
Изменение проверки коллекции
Вы можете изменить коллекцию для управления проверкой JSON-схемы документов. Например, вы можете включить или отключить проверку или изменить JSON-схему, по которой проверяются документы.
Для изменения проверки JSON-схемы коллекции, передайте validation JSON-объект при вызове метода Collection.modify(). Например, для отключения проверки JSON-схемы в коллекции, validation объект будет выглядеть так:
{
validation: {
"level": "off"
}
}
При модификации проверки JSON-схемы, вы можете указать только опцию level, чтобы изменить только уровень проверки схемы. Например, передайте JSON-объект, показанный выше, чтобы отключить проверку JSON-схемы. Это не повлияет на ранее указанную JSON-схему и не удалит JSON-схему из коллекции. В качестве альтернативы, вы можете изменить схему, передав только новый JSON-объект схемы.
© 2025 Oracle
Licensed under the GPLv2 License.