如何在Artifactory AQL查询中添加“路径”?

bot_bot

我正在使用失眠症来调用Artifactory API。
我有以下查询,它确实运行良好:

items.find({"repo":{"$eq":"my-repository-virt"}}, {"$and":[{"@my.fileType":{"$match": "jar"}},{"@my.otherType":{"$match": "type2"}},{"@prodVersion":{"$match": "false"}}]})   

但是我有一个问题,就是在某些子文件夹中有重复的文件,具有与我想排除的相同的属性/文件名。
我想为此查询添加路径,但是我永远都无法返回任何结果。
该存储库是一个虚拟存储库,它链接到其他3个真实存储库。

我的一位同事可以使用命令行工具调用以下查询,并获得预期的结果:

 jfrog rt search my-repo-snapshots/myproject/subfolder/jars/*.jar

我尝试将path参数添加到查询中,尝试移除除回购协议和路径之外的所有内容,如下所示:

items.find({"repo":{"$eq":"my-repo-snapshots"}},{"path" : "my-repo-snapshots/myproject/subfolder/jars/*.jar"})

我已经尝试过仅使用路径,并使用虚拟存储库,实际存储库来尝试更改路径(包括/不包含存储库名称),但在路径上有所变化,但我总是能够成功返回0个结果。

如何构建此查询以沿着特定路径并包括某些属性搜索虚拟存储库?

编辑:
我也尝试过:

items.find({"repo":{"$eq":"my-repo-snapshots"}},{"path" : {"$match":"my-repo-snapshots/myproject/subfolder/jars/*.jar"}})   

无论是在路径中还是没有路径下,我仍然得到0个结果。

bot_bot

好,我知道了。
path零件需要与{"$and": ...}包含属性部分一起添加像这样:

items.find({"repo":{"$eq":"my-repository-virt"}}, 
{"$and":[
{"path":{"$match":"path/to/relevant/folders/*"}}, 
{"@my.fileType":{"$match": "jar"}},
{"@my.otherType":{"$match": "type2"}},
{"@prodVersion":{"$match": "false"}}
]})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章