首页 > 解决方案 > 将控制台上的 uris 输出保存到文件系统

问题描述

如何将 qconsole 的结果保存到输出文件。output.txt 将在下面的每一行中包含名称 uri。我有超过一千份文件。

 Caltech.xml
 CGU.xml
 GMU.xml
 Hopkins.xml
 Georgetown.xml
 ....

let $uris:= cts:uris(
        (),
        (),
        cts:and-query(( cts:collection-query("/Universities/")))

    )

let $quote:=
   for $u in $uris
   return 
       fn:substring-after($u,"/Universities/")

let $output:=
text {
fn:concat(
    fn:string-join(($quote),","),
    "
"
 )

}  
return xdmp:save(fn:concat("/09122018/output.txt") ,$output) 

标签: marklogic

解决方案


不要字符串连接和连接来创建一个大字符串。取而代之的是,将多个字符串作为文本节点提交,包裹在您传入的文档节点中xdmp:save。您可以通过这种方式轻松处理数百万份文档(前提是您愿意等待一分钟)。另请参阅:https ://stackoverflow.com/a/52005868/918496

如果您需要超出此范围,请按照 Rob 的建议查看Corb2


推荐阅读