繁体   English   中英

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 模式并使用文档 object 对其进行解析。

我想让 json 模式尽可能简单,以便人类可读,并且我有扩展其他对象的对象,因此分离 json 模式文件来表示超级对象会更容易。

我正在使用 java 1.13 和 spring 启动 2.4.2。

由于这可能是有关此主题的有用信息 - 可以在使用 Mongock 创建集合时添加验证规则。 什么对我有用:

mongoTemplate.createCollection(FileInfo.class, CollectionOptions.empty()
        .validator(Validator.schema(MongoJsonSchema.builder()
                .required("fileStatus", "path")
                .build())));

将使这两个字段成为必需的。

Mongock 目前不提供模式验证机制。 但是,该团队正在考虑在版本 5 发布后作为补丁添加

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM