【问题标题】:Adobe cq5 query builder - get multiple properties within a date rangeAdobe cq5 查询生成器 - 获取日期范围内的多个属性
【发布时间】:2014-08-19 17:30:36
【问题描述】:

我正在使用查询来根据属性 cq:lastModifiedjcr:created 搜索用户 在特定日期范围内 查询应返回在daterange 之间最后修改的用户,如果最后修改的属性不存在,则应返回该日期范围内的jcr:created

请告诉我怎么做

在调试器中,我使用它,但请在下面找到路径。我想要 OR 而不是 AND

path = /home/users
type=rep:User

1_daterange.property=jcr:created
1_daterange.lowerBound=2014-08-18
1_daterange.upperBound=2014-08-19

2_daterange.property=cq:lastModified
2_daterange.lowerBound=2014-08-18
2_daterange.upperBound=2014-08-19



/jcr:root/home/users//element(*, rep:User)
[
(@jcr:created > xs:dateTime('2014-08-18T00:00:00.000+05:30')
and @jcr:created < xs:dateTime('2014-08-19T00:00:00.000+05:30')) 
***AND*** (@cq:lastModified > xs:dateTime('2014-08-18T00:00:00.000+05:30')
and @cq:lastModified < xs:dateTime('2014-08-19T00:00:00.000+05:30')) 
]

粗体的“和”实际上应该是“或”

请帮忙

【问题讨论】:

    标签: adobe aem query-builder


    【解决方案1】:

    使用groups搜索多个属性,使用group.p.or指定OR条件

    path=/home/users
    type=rep:User
    
    group.1_daterange.property=jcr:created
    group.1_daterange.lowerBound=2014-08-18
    group.1_daterange.upperBound=2014-08-19
    
    group.2_daterange.property=cq:lastModified
    group.2_daterange.lowerBound=2014-08-18
    group.2_daterange.upperBound=2014-08-19
    
    group.p.or=true
    

    在查询生成器 API 中,p.or 中的 p 是一个特殊的分隔符,指示后面的(在本例中为或)是组的参数,而不是组的子谓词,例如1_daterange。

    如果没有给出p.or,那么所有谓词都是ANDed

    要了解更多关于查询的信息,请参考this docs page

    【讨论】:

    • 谢谢,它也对我有用。另一个 1_relativedaterange.upperBound 将接受 -30d、-1M、-1Y。有时很容易使用。
    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多