繁体   English   中英

Marklogic如何更改目录名称

[英]Marklogic How to change directory name

如何在Marklogic中将目录从“ / Collections /”更新为“ / CollectionsCount /”

for $each in xdmp:directory("/collections/", "infinity")
return xdmp:node-uri($each)

result found:
 /collections/Count2017-08-25.xml
 /collections/Count2017-08-27.xml
 /collections/Count2017-08-26.xml
 /collections/Count2017-08-28.xml

我想将目录更新为“ / collectionsCount /”,然后使用什么功能。 提前致谢。

 /collectionsCount/Count2017-08-25.xml
/collectionsCount/Count2017-08-26.xml
....

目录是基于文档URI的构造,因此,要更改目录,您将需要删除旧文档,并在新URI处插入新文档(使用新目录前缀代替旧文档)。

for $each in xdmp:directory("/collections/", "infinity")
let $old-uri := $each/xdmp:node-uri(.)
let $permissions := xdmp:document-get-permissions($old-uri)
let $collections := xdmp:document-get-collections($old-uri)
let $quality := xdmp:document-get-quality($old-uri)
let $properties := xdmp:document-properties($old-uri)
let $new-uri := concat('/collectionsCount/', substring-after($old-uri, '/collections/'))
return (
  xdmp:document-insert($new-uri, $each, $permissions, $collections, $quality),
  xdmp:document-set-properties($new-uri, $properties),
  xdmp:document-delete($old-uri))

编辑:更新以包括@hunterhacker的建议,以传播文档元数据。 请注意,我有意省去了将新文档分配给旧文档的目录林,因为在大多数情况下,我认为最好由数据库决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM