使用哪个cts:query来消除包含特定元素的doc?

时间:2018-02-17 17:51:22

标签: marklogic

我根据时间戳数据库中提取uris列表。这是代码 -

cts:uris( (),  (),  cts:and-query((
                cts:collection-query("meters") ,
                cts:element-value-query(xs:QName("mt:period"), "raw"),
                cts:element-range-query( xs:QName("mt:end-time"),  ">=", xs:dateTime("2018-02-17T05:37:00") ),
)
                 )
                              ))

但它包括 keystore-raw.xml ,它不是我想要的结果集中的文件?如何从结果集中删除它。父元素为keystore-metrics,并且还包含keystore-metric等元素。我不想要任何for循环。

1 个答案:

答案 0 :(得分:4)

确保文档中存在元素:

cts:element-query(xs:QName("Your-element"), cts:true-query())

确保文档中不存在元素:

cts:not-query(cts:element-query(xs:QName("Your-element"), cts:true-query()))

为什么这样做?因为cts:element-query()确认元素在文档中并且cts:true-query()满足cts的要求:element-query()