【问题标题】:AQL include for multi value property returns only first valueAQL 包含多值属性仅返回第一个值
【发布时间】:2019-10-30 15:26:05
【问题描述】:

包含多值属性字段的所有值的正确 AQL 格式是什么。 @<prop name>properties.* 似乎都不起作用。

当运行 AQL 查询并包含包含多个值的属性字段时,结果包含第一个值,而不是包含所有值的列表

items.find(...).include("*","@distro")

目前,我运行一个查询来生成一个工件列表,然后遍历该列表,为每个工件属性运行一个查询

f'/api/storage/{artifact.repo}/{artifact.path}/{artifact.name}?properties'

结果

...properties {'key': 'distro', 'value': 'Ubuntu'}

期望的结果

...properties {'key': 'distro', 'value': ['Ubuntu', 'CentOS',...]}

【问题讨论】:

    标签: artifactory artifactory-query-lang


    【解决方案1】:

    我收到了 jfrog 支持的回复,问题似乎是使用“@propertyname”允许将潜在的多值属性折叠为单个值,这会阻止所有属性的收集。

    更有效的方法是

    items.find(...).include("property")
    

    这会导致在 json 有效负载中返回所有属性,因为它包含属性 domain,其中包含所有属性。

    此外,通过不使用 @,查询不会将值列表中的属性折叠为单个值。因此,如果 build_number 是一个属性,它将变为 ['25'] 而不是 25

    在请求属性域时,请务必将每个属性视为一个列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2016-10-02
      • 2021-07-08
      相关资源
      最近更新 更多