我正在使用失眠症来调用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个结果。
答案 0 :(得分:0)
好,我知道了。
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"}}
]})