2017-10-05 3 views
0

Y at-il une fonction dans l'API client X-Query ou Node-JS pour obtenir la liste des répertoires ou la vue hiérarchique des fichiers dans Marklogic 9?Structure de répertoire hiérarchique dans marklogic

+0

Vous pouvez utiliser les EVC: fonction URIs() dans XQuery - mais pouvez-vous préciser ce qui est le résultat final que vous désirez? – Tamas

+0

Je suis en train de concevoir un frontal pour ressembler à une structure hiérarchique de dossiers, donc si vous obtenez la liste des répertoires ou la structure de répertoires, je peux les transmettre et créer cette structure en début de page –

Répondre

1

Les répertoires de MarkLogic ne sont que des conventions reflétées par des URI de document.

Aucune ressource correspondant à un répertoire n'existe dans la base de données (à l'exception d'un cas de bordure pour WebDav).

Comme Tamas fait allusion dans son commentaire, vous pouvez écrire un XQuery ou fonction JavaScript pour

  • lecture URIs du lexique URI
  • sorte
  • tokenize les URIs du/en URI étapes
  • groupe sur les étapes pour construire la hiérarchie

en espérant que cela aide,

0

Il y a une recette developer.marklogic.com qui devrait aider: 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())