查询中的MarkLogic 9多个集合

时间:2019-10-31 22:00:16

标签: marklogic

如何使用cts:uris()从Marklogic 9的多个集合中获取uri。 查询返回一个空序列

let $u := cts:uris((),(),cts:and-query((cts:collection-query("/lib/info"),                               
                                       cts:collection-query("/lib/top10"),
                        cts:element-value-query(xs:QName("function"),"stats") 
                                   ))
              )
return $u

1 个答案:

答案 0 :(得分:2)

您是否要同时拥有两个收藏集或其他文档?像您一样使用and-query意味着它只会返回具有BOTH和BOTH的文档。将其转换为or-query,并用and-query将其包装起来。为简单起见,您还可以将匹配任何序列的序列传递给collection-query。最后,您不需要letreturn,而且对于较大的结果集而言,摆脱它们可以让服务器流式传输而不是缓冲式。

cts:uris((),(),
  cts:and-query((cts:collection-query(("/lib/info","/lib/top10")),
                 cts:element-value-query(xs:QName("function"),"stats")
               ))
)