将文档插入特定数据库MarkLogic

时间:2016-11-24 02:01:21

标签: xquery marklogic roxy

我正在使用roxy设置数据库,这与"文档"数据库。我想将配置文件插入该数据库。

我在xquery ml-1.0

中有这个功能
xquery version "1.0-ml";



declare namespace appsetup = "http://kittens.com.au/appsetup";



declare function appsetup:setup-day0($root,$content-db){
    (: some values :)
    let $m := map:new ()
    let $_ := map:put ($m, "Kittens-Forever",xdmp:parse-dateTime("[Y0001]-[M01]-[D01]", "2999-12-31"))
    let $_ := map:put ($m, "Kittens-Never", xdmp:parse-dateTime("[Y0001]-[M01]-[D01]", "1899-12-31"))
    let $_ := map:put ($m, "Kittens-Load-Root", $root)

    return  xdmp:document-insert ("/ksys/smap", <s:map>{$m}</s:map>,
                    (xdmp:permission ("Kittens-role", "read"),
                    xdmp:permission ("Kittens-role", "update")) )

};

xdmp:document-insert将文档插入默认的&#34;文档&#34;数据库。我环顾四周,我无法找到将此文档加载到此数据库的方法。我只找到了一种使用xdmp:document-load(https://docs.marklogic.com/xdmp:document-load)将文档插入特定林的方法。

有没有办法让我说这个东西加载到这个数据库中,最好只是作为一个xquery参数?

1 个答案:

答案 0 :(得分:2)

xdmp:默认情况下,document-insert不会插入到Documents数据库中。它插入到应用程序服务器配置中定义的数据库中。我们的想法是,您有一个用于与数据库连接的应用程序服务器。

一些注意事项:

  • 使用为您的数据库配置的应用服务器。
  • 或者使用具有此
  • 参数的REST API
  • 或使用HTTP重写规则根据用户,URI或查询参数动态更改数据库
  • 或者使用xdmp:eval或其衍生物(spawn,invoke,invoke-function),它们都有一个选项来定义要使用的数据库。

对于您的特定样本,我建议您使用xdmp:invoke-function。