我知道如何在xml文件中插入文档但不知道如何将xquery文件存储到Marklogic Module数据库中。我想要存储xquery文件来设置计划任务的原因。我在下面有一个xquery文件。提前谢谢。
declare namespace...
let $uris := cts:element-value(...code...),
cts:and-query((...code...))
let $result := {<stats><top-docs>
for $uri in $uris[1 to 10]
...more code here..
}</top-docs></stats>
let $permissions := (xdmp:permission(..give permissions here.))
let $_ := xdmp:log("Inserting Stats Document")
return xdmp:document-insert("/acitivity/stats.xml",$result, $permissions))
答案 0 :(得分:5)
有许多方法可以将xqy文件插入模块数据库。这里只是几个:
答案 1 :(得分:0)
除了Mads回答:
您必须设置文档的执行权限,以便非管理员执行它。重要的是要记住,当在marklogic中运行时(作为xquery或javascript或作为客户端apis之一的结果) - 有多个与您的会话相关联的数据库 - 数据,模块,安全性等 - 所有&#39 ;数据如&#39;操作转到数据DB,所有&#39;执行&#39;操作转到&#39;模块&#39; DB(或文件系统)等,因为没有&#34;数据库&#34;参数到xdmp:document-insert,并且数据库关联在单个表达式中不可更改 - 您使用xdmp:eval / xdmp:invoke函数之一在具有所需设置的子上下文中运行插入。 / p>
答案 2 :(得分:0)
MarkLogic网站上还有一个方便的食谱。我经常使用它。它的评论很好并且有逻辑可以在没有提交的情况下尝试它,以确保它能够按照您的期望进行: