XQuery函数,用于在MarkLogic中将文档从一个数据库连接并复制到另一个数据库



我可以使用哪些xquery函数来连接MarkLogic数据库并将该数据库的集合复制到位于同一MarkLogic服务器中的另一个数据库。

您可以使用xdmp:invoke-function(),并在选项中指定不同的database

xquery version "1.0-ml";
for $doc in cts:search(doc(), cts:collection-query("collection-name"))
let $uri := $doc/base-uri()
let $collections := xdmp:document-get-permissions($uri)
let $permissions := xdmp:document-get-collections($uri)
return
xdmp:invoke-function(function() { 
xdmp:document-insert($uri, $doc, $permissions, $collections) 
},
<options xmlns="xdmp:eval">
<database>{ xdmp:database("GTM2_TEST") }</database>
</options>)

如果集合中有大量的文档,那么您可能需要查看xdmp:spawn-function(),或者使用批处理工具(如CoRB)进行工作,以避免扩展树缓存错误和/或尝试在一个大事务中处理它们时超时。

相关内容

最新更新