marklogic中的层次目录结构

marklogic中的层次目录结构,marklogic,marklogic-9,Marklogic,Marklogic 9,在X-Query或Node JS client API中是否有任何函数可以获取Marklogic 9中的目录列表或文件的层次视图?Marklogic中的目录只是文档URI反映的约定 数据库中不存在与目录对应的资源(WebDav的边缘案例除外) 正如塔马斯在他的评论中暗示的那样,您可以编写一个XQuery或JavaScript函数来 从URI词典中读取URI 分类 将/上的URI标记为URI步骤 对构建层次结构的步骤进行分组 希望这能有所帮助,developer.marklogic.com上有

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

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

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

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

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

希望这能有所帮助,

developer.marklogic.com上有一个食谱应该会有所帮助:


您可以在XQuery中使用cts:uris()函数,但是您能澄清一下您想要的最终输出是什么吗?我正在尝试将前端设计为类似文件夹层次结构的,因此,如果用户获取目录列表或目录结构,那么我可以传递它们并在前端创建该结构
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())