java mongo json 模式验证
java mongo json schema validation
我想知道 mongock 是否支持 synthax 如:
"allOf": [{ "$ref": "/schema/base" }]
当它在集合创建期间构建验证时,或者如果您知道一个库可以用来“合并”一个独特的大 json 模式中的所有引用,可以作为文档的输入给出用于验证。
我用来验证集合的代码是:
String jsonString = readJsonFile(fileName);
Document doc = Document.parse(jsonString);
ValidationOptions validationOptions = new ValidationOptions();
validationOptions.validator(doc);
validationOptions.validationAction(ValidationAction.ERROR);
validationOptions.validationLevel(ValidationLevel.STRICT);
CreateCollectionOptions cco = new CreateCollectionOptions();
cco.validationOptions(validationOptions);
如您目前所见,我只是从文件中读取 json 模式并使用 Document 对象对其进行解析。
我想使 json 模式尽可能简单以便于人类阅读,并且我有扩展其他对象的对象,因此分离 json 模式文件来表示超级对象。
我正在使用 java 1.13 和 spring boot 2.4.2。
Mongock 目前不提供架构验证机制。但是,团队正在考虑在版本 5 发布后作为补丁添加
由于这可能是有关此主题的有用信息 - 可以在使用 Mongock 创建集合时添加验证规则。什么对我有用:
mongoTemplate.createCollection(FileInfo.class, CollectionOptions.empty()
.validator(Validator.schema(MongoJsonSchema.builder()
.required("fileStatus", "path")
.build())));
将使这两个字段成为必填字段。
我想知道 mongock 是否支持 synthax 如:
"allOf": [{ "$ref": "/schema/base" }]
当它在集合创建期间构建验证时,或者如果您知道一个库可以用来“合并”一个独特的大 json 模式中的所有引用,可以作为文档的输入给出用于验证。
我用来验证集合的代码是:
String jsonString = readJsonFile(fileName);
Document doc = Document.parse(jsonString);
ValidationOptions validationOptions = new ValidationOptions();
validationOptions.validator(doc);
validationOptions.validationAction(ValidationAction.ERROR);
validationOptions.validationLevel(ValidationLevel.STRICT);
CreateCollectionOptions cco = new CreateCollectionOptions();
cco.validationOptions(validationOptions);
如您目前所见,我只是从文件中读取 json 模式并使用 Document 对象对其进行解析。
我想使 json 模式尽可能简单以便于人类阅读,并且我有扩展其他对象的对象,因此分离 json 模式文件来表示超级对象。
我正在使用 java 1.13 和 spring boot 2.4.2。
Mongock 目前不提供架构验证机制。但是,团队正在考虑在版本 5 发布后作为补丁添加
由于这可能是有关此主题的有用信息 - 可以在使用 Mongock 创建集合时添加验证规则。什么对我有用:
mongoTemplate.createCollection(FileInfo.class, CollectionOptions.empty()
.validator(Validator.schema(MongoJsonSchema.builder()
.required("fileStatus", "path")
.build())));
将使这两个字段成为必填字段。