定义日期类型的自定义属性,并将其用于查询

时间:2019-02-01 15:48:19

标签: artifactory artifactory-query-lang

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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