簡體   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