我正在使用基于属性 cq:lastModified
和 jcr:created
的查询来搜索用户
在特定日期范围内
查询应返回在日期范围
之间最后修改的用户,如果最后修改的属性不存在,则应返回该日期范围内的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'))
]
粗体的“and”实际上应该是“or”
请帮忙
最佳答案
使用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
是一个特殊的分隔符,指示后面的内容(在本例中为 or)是组的参数,而不是组,例如 1_daterange。
如果没有给出p.or
,那么所有谓词都会ANDed
在一起。
要了解有关查询的更多信息,请参阅this docs page .
关于Adobe cq5 查询生成器 - 获取日期范围内的多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366115/