Свойство AQL include for multi value возвращает только первое значение - PullRequest
0 голосов
/ 30 октября 2019

Какой правильный формат 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',...]}

1 Ответ

1 голос
/ 31 октября 2019

Я получил ответ от поддержки jfrog, и проблема, похоже, заключается в том, что использование @propertyname позволяет сворачивать потенциально многозначное свойство в одно значение, и это блокирует сбор всех свойств.

Более эффективный подход был бы

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

. Это приводит ко всем свойствам, возвращаемым в полезной нагрузке json, поскольку оно включает свойство domain , которое включает в себя все свойства.

Кроме того, не используя @ , запрос не сворачивает свойства из списков значений в одно значение. Таким образом, если build_number является свойством, оно становится ['25'] вместо 25.

При запросе домена свойств обязательно обрабатывайте каждое свойство как список.

...