我的数据库中有很多审计文档,如下所示
<Record>
<objectType>Audit</objectType>
<dateCreated>2017-04-07T03:51:56.231-04:00</dateCreated>
<createdBy>first user</createdBy>
</Record>
如何获取过去30天内创建审核文件的用户(createdBy)总数?有一些审计文件,其中createdBy相同,因此我们需要不同的值计数。
我尝试了以下查询:
let $query := cts:values(cts:element-reference(fn:QName($NS, "createdBy")))
return fn:count($query)
但我如何在dateCreated>30
内使用条件cts:range-query
或cts:values
。
有没有其他方法来实现这一目标?
(我已经为createdBy和dateCreated设置了元素范围索引)
答案 0 :(得分:2)
您可以将约束范围查询作为第三个参数传递给cts:count-aggregate() - 以下几行应该有效:
let $index := fn:QName($NS, "dateCreated")
let $count := cts:count-aggregate(
cts:element-reference($index),
(),
cts:element-range-query($index, ">",
fn:current-dateTime() - xs:dayTimeDuration("P30D")
)
)
这应该为您提供过去30天内dateCreated值的总数。
有关详细信息,请参阅: