使用哪个 cts: 查询来消除包含特定元素的文档?

bos*_*ari 1 marklogic

我正在根据时间戳从数据库中提取 uri 列表。这是代码 -

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") ),
)
                 )
                              ))
Run Code Online (Sandbox Code Playgroud)

但它包括keystore-raw.xml这不是我想要的结果集中的文件?如何将其从结果集中删除。父元素是keystore-metrics并且还具有诸如 之类的元素keystore-metric。我不想要任何 for 循环。

Dav*_*nis 5

要确保文档中存在元素:

cts:element-query(xs:QName("Your-element"), cts:true-query())
Run Code Online (Sandbox Code Playgroud)

要确保文档中不存在元素:

cts:not-query(cts:element-query(xs:QName("Your-element"), cts:true-query()))
Run Code Online (Sandbox Code Playgroud)

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