带有错误的附加属性的Edge集合的Arango模式验证不起作用

问题描述

我正在使用3.7版本中发布的arangoDB模式验证。模式验证按预期进行,适用于文档集合。但是对于 Edge系列,会出现以下问题。

  • 边缘的要求:边缘应该具有 id 属性或根本不具有任何属性(因此不使用 required 键),并且不应具有任何其他属性(因此 additionalProperties 设置为false)。

我使用了以下架构和边缘实例。但是由于架构验证失败,因此无法创建以下边缘实例。

使用的架构:

{
  "message": "Schema validation error","level": "strict","rule": {
    "properties": {
      "id": {
        "type": "string"
      }
    },"additionalProperties": false
  }
}

尝试使用arangoDB Web界面创建边缘实例:

  • _from:DocCollection1 / t1
  • _to:DocCollection2 / t2
  • _key:e1
  • 文档正文:{}

如果将 additionalProperties 更改为 true ,则可以创建边缘,但是它也可以创建具有任何我不需要的名称属性的边缘。

我已经搜索arango文档,但无法弄清楚为什么Edge集合中的这种方案的模式验证失败。在文档集合中,同样的情况也可以正常工作。

环境:单节点,v3.7.2,社区版

解决方法

这是当前3.7版本中的错误,即将修复:

https://github.com/arangodb/arangodb/pull/12932

不幸的是,似乎没有解决方法-我想明确地添加_from作为属性没有帮助,因为这是一个特殊字段,需要内部翻译。