0

X-Query 或 Node-JS 客户端 API 中是否有任何功能可以获取 Marklogic 9 中的目录列表或文件的分层视图?

4

2 回答 2

1

MarkLogic 中的目录只是文档 URI 所反映的约定。

数据库中不存在与目录对应的资源(WebDav 的边缘情况除外)。

正如 Tamas 在他的评论中暗示的那样,您可以编写一个 XQuery 或 JavaScript 函数来

  • 从 URI 词典中读取 URI
  • 种类
  • 将 / 上的 URI 标记为 URI 步骤
  • 对构建层次结构的步骤进行分组

希望有帮助,

于 2017-10-05T16:09:35.947 回答
0

developer.marklogic.com 上有一个应该有帮助的食谱:http: //developer.marklogic.com/recipe/list-directory-count

declare function local:map-uris($uris as xs:string*)
{
  let $map := map:map()
  let $_ := 
    for $uri in $uris
    let $toks := fn:tokenize($uri, "/")
    for $t at $i in fn:subsequence($toks, 1, fn:count($toks) - 1)
    let $key := fn:string-join($toks[1 to $i], "/") || "/"
    let $count := (map:get($map, $key), 0)[1]
    return map:put($map, $key, ($count + 1) )
  return $map
};

local:map-uris(cts:uris())
于 2017-10-05T16:16:10.743 回答