marklogic中的分层目录结构

Hierarchical directory structure in marklogic

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

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

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

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

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

希望对您有所帮助,

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())