MarkLogic 9 несколько коллекций в запросе - PullRequest
0 голосов
/ 01 ноября 2019

Как я могу использовать cts: uris () для получения uri из нескольких коллекций в Marklogic 9. Запрос вернул пустую последовательность

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 Ответ

2 голосов
/ 01 ноября 2019

Вы хотите документы, которые имеют ОБА или коллекции? Использование and-query, как вы сделали, означает, что он будет возвращать только те документы, которые имеют ОБА. Преобразуйте это в or-query и, возможно, оберните все это and-query. Для простоты вы также можете передать последовательность в collection-query, которая будет соответствовать любой. И, наконец, вам не нужны let и return, и для большого результирующего набора, избавление от которого может позволить серверу выполнять потоковую передачу вместо буфера.

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