Artifactory 定义日期类型的自定义属性并在查询中使用

Artifactory 定义日期类型的自定义属性并在查询中使用,artifactory,artifactory-query-lang,Artifactory,Artifactory Query Lang,Artifactory的专业版本允许为工件定义自定义属性。通常,这些是键/值对,其中值是字符串 是否也可以使用日期(或数字)作为值 我想定义一个带有日期的属性,如“doNotUseAfter”。然后,我想使用Artifactory查询语言来找出哪些工件的doNotUseAfter日期已经过去。所有属性值都是字符串或字符串的集合。属性中没有内置类型信息。但是,如果使用可排序编码(例如)将日期格式化为字符串,则可以使用AQL查询将字符串与相同格式的当前日期进行比较 例如,如果您的工件有一个属性doN

Artifactory的专业版本允许为工件定义自定义属性。通常,这些是键/值对,其中值是字符串

是否也可以使用日期(或数字)作为值


我想定义一个带有日期的属性,如“doNotUseAfter”。然后,我想使用Artifactory查询语言来找出哪些工件的doNotUseAfter日期已经过去。

所有属性值都是字符串或字符串的集合。属性中没有内置类型信息。但是,如果使用可排序编码(例如)将日期格式化为字符串,则可以使用AQL查询将字符串与相同格式的当前日期进行比较

例如,如果您的工件有一个属性
doNotUseAfter:2018-10-22
,您可以使用以下AQL查询来查找它:

items.find({"@doNotUseAfter": {"$lt": "2019-02-01"}})


请注意,AQL确实对日期和数字数据有特定的支持,但据我所知,这仅适用于始终具有这些类型的
modified
size
等字段;我相当确定它不会根据格式将任意属性解析为一种类型或另一种类型。这可能会在排序或比较数字属性时产生问题,因为字符串
“5”
被认为比
“43”
大,例如,但对于可排序格式的日期和时间戳,则不存在此类问题。

所有属性值都是字符串或字符串的集合。属性中没有内置类型信息。但是,如果使用可排序编码(例如)将日期格式化为字符串,则可以使用AQL查询将字符串与相同格式的当前日期进行比较

例如,如果您的工件有一个属性
doNotUseAfter:2018-10-22
,您可以使用以下AQL查询来查找它:

items.find({"@doNotUseAfter": {"$lt": "2019-02-01"}})

请注意,AQL确实对日期和数字数据有特定的支持,但据我所知,这仅适用于始终具有这些类型的
modified
size
等字段;我相当确定它不会根据格式将任意属性解析为一种类型或另一种类型。这可能会在排序或比较数值属性时产生问题,因为字符串
“5”
被认为比
“43”
大,例如,但对于可排序格式的日期和时间戳,则不存在此类问题