AQL 包含多个值 属性 returns 仅第一个值

AQL include for multi value property returns only first value

包含多值 属性 字段的所有值的正确 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',...]}

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

更有效的方法是

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

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

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

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